본문 바로가기

예제46

[C/C++] 오름차순 정렬, 내림차순 정렬 C언어, qsort 활용 [C/C++] 오름차순 정렬, 내림차순 정렬 C언어, qsort 활용 qsort 함수를 이용한 오름차순/내림차순 정렬 함수 구현을 해보자. qsort는 quick sort의 약자로 배열을 정렬하는 함수이다. quick sort에 대해 간단히 설명하면 원소와 다른 원소의 비교로 정렬하는 비교 정렬이다. 알고리즘적인 내용을 터치할 건 아니니 바로 함수 원형과 사용법을 알아보자. qsort 헤더 및 원형 #include void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); qsort 함수의 인자를 쉽게 풀이해보면 다음처럼 이해하면 쉬울 것이다. qsort(, , , ) 꼭 정수 배열일 필요는 없다.. 2022. 1. 10.
디렉토리별 용량 확인 방법 / linux du, find 활용 디렉토리별 용량 리눅스에서 디렉토리 용량을 확인하는 명령어는 du가 있다. 그리고 파일 또는 디렉토리를 탐색하는 find 명령어도 있다. 이 두개를 조합하여 디렉토리별 용량 조회하는 방법을 알아보자. 우선 du, 간단하게 소개하자면 파일(또는 디렉토리 등 대상)의 용량을 확인하는 명령어다. 자세한 내용은 아래 man page를 참고하면 되겠고 바로 예제로 들어간다. du - estimate file space usage https://man7.org/linux/man-pages/man1/du.1.html du(1) - Linux manual page man7.org 예제 1. du 명령어만 이용 root@muabow:/var/log# du . 4 ./samba/cores/smbd 4 ./samba/cor.. 2022. 1. 9.
[C/C++] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 C언어에서 readdir 함수를 사용하는 재귀 함수로 구성하였다. 디렉터리는 제외하고 파일만 조회하고 탐색된 전체 경로(full path)를 글로벌 vector에 저장한다. 이전 포스팅 중 PHP로 구현한 파일 탐색기와 동일한 기능을 수행한다. https://muabow.tistory.com/249 [PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 opendir, readdir, is_dir 함수를 사용하는 재귀 함수로 구성하였다. 디렉터리는 제외하고 파일만 조회하고 탐색된 전체 경로(full path)를 배열로 반환 muabow.tistory.com 소스코드 #inc.. 2022. 1. 7.
[PHP] fileperms을 활용한 파일 탐색과 퍼미션 검사 fileperms을 활용한 파일 탐색과 퍼미션 검사 이전에 작성한 탐색기 함수를 이용하여 대상 경로의 모든 파일 중 사용자가 지정한 퍼미션이 아닌 파일을 배열로 반환하는 함수를 만든다. 공동 공간에서 작업을 하거나 서버 내 파일 생성/삭제 등 여러 파일을 제어하다 보면 퍼미션이 꼬이는 경우가 종종 발생한다. 특히 웹 서비스와 관련된 파일을 만들고 관리하다 보면 퍼미션으로 인해 웹 페이지에서 접근이 안 되는 경우가 많다. 그럴 때 일괄적으로 특정 경로의 퍼미션 체크를 할때 유용하게 사용된다. ▽ 파일 탐색기 함수 포스팅 https://muabow.tistory.com/249 [PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 op.. 2022. 1. 6.
[PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 opendir, readdir, is_dir 함수를 사용하는 재귀 함수로 구성하였다. 디렉터리는 제외하고 파일만 조회하고 탐색된 전체 경로(full path)를 배열로 반환한다. 사용방법은 함수의 인자로 탐색할 경로를 명세하면 된다. https://github.com/muabow/home/tree/main/src/php/get_file_list GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com 소스코드 .. 2022. 1. 6.
[PHP] web shell 설명 및 예제 공유 web shell 설명 및 예제 공유 - web shell, 웹 쉘은 웹 페이지를 통해 shell을 사용하는 것을 의미한다. 보통 shell은 telnet, ssh 등 단말에 접속할 수 있는 프로토콜을 이용하여 접속하는데 개발 환경의 테스트, 현장 대응 등 여러 가지 이유로 백도어(backdoor, 개구멍)처럼 하나씩 숨겨놓기도 한다. web shell은 일반적인 서비스의 포트 스캐닝이나 별도의 검증 툴로 확인할 수 없기 때문에 오픈 되는 경우 문제의 인지를 할 수 없어 많은 사고를 야기한다. 그러므로 개발 중 테스트 또는 인증 절차를 통한 원격 지원용 정도로만 사용하자. https://github.com/muabow/home/tree/main/src/php/web_shell GitHub - muabow.. 2022. 1. 6.
svn add commit 전 취소 방법 svn add commit 전 취소 - linux, ubuntu, svn, add, commit, revert, 설명, 예제 svn add 상태일 때 원상태로 되돌리는 방법은 svn revert 명령을 사용하면 된다. 예제 - test_file 생성 > svn st > svn add > svn revert > svn st 확인 muabow@muabow-WorkSpace:~/project/$ touch test_file muabow@muabow-WorkSpace:~/project/$ svn st ? test_file muabow@muabow-WorkSpace:~/project/$ svn add test_file A test_file muabow@muabow-WorkSpace:~/project/$ svn r.. 2022. 1. 5.
[PHP] top 또는 ps 에 보이는 php 프로세스명 변경 방법 top 또는 ps 에 보이는 php 프로세스명 변경 방법 - cli_set_process_title() 리눅스 환경에서 top 또는 ps 시 현재 실행 중인 프로세스 목록을 확인 할 수 있다. 그 중에 php로 실행된 파일들의 이름은 [php /.../exec.php] 처럼 php 가 어떤 파일을 실행시켰다. 라고 명세가 되어 이게 어떤 프로세스인지 구분하거나 프로세스명으로 제어하는 명령어를 사용하기 어렵다. 그래서 cli_set_process_title()을 사용하여 프로세스명을 변경하여 사용한다. 함수 정의 - top 및 ps 에서 보이는 프로세스의 이름을 변경한다. CLI에서만 동작한다. cli_set_process_title(string $title): bool 예제 코드 : 프로세스명 변경 미적.. 2022. 1. 5.