특정 디렉토리에 있는 파일 정보

miso018의 이미지

프로그램을 짜다가 궁금한 것이 있엇 질문을 올립니다.
검색을 해보아도 너무나 많기 때문에..

질문은 주제와 같이 특정 폴더에 있는 파일의 정보를 얻는 방법입니다.

예를 들어
~user/data/
라는 디렉토리에 100개의 파일이 있을 경우 가장 첫번째와 가장 마지막 파일을 찾는 방법이 궁금합니다. 파일이름은 모두 숫자로 되어 있고
확장자로 txt 를 갖는 경우입니다.

^^

feanor의 이미지

ls | sort -n | head -n 1
ls | sort -n | tail -n 1

하면 되지 않을까요.

--feanor

miso018의 이미지

다음과 같은 방법으로 해결을 했습니다..
혹시 더 좋은 방법 있으면.. 답글로. 올려 주세요..

#include<stdio.h>
main()
{
            FILE *result;
            result = popen("ls /home/~/data_1 | sort -n | head -n 1");
            pclose(result);
            printf("%s\n",result);
}
feanor의 이미지

위 코드는 동작하지 않는데 어떻게 해결하셨다는 건가요?

--feanor

miso018의 이미지

비록 작지만. 그래도 다른 분들에게 도움이 되었으면 하는 생각에..

간단한 코드 입니다.
C언어 상에서 리눅스 명령어를 실행하고, 실행한 결과값을 다시 가져오는 간단한 코드 입니다.

#include<stdio.h>
#include<stdlib.h>

main()
{
           FILE *result;
           char buf[100];
            
            result = popen("ls  | sort -n | head -n 1", "r")
            fgets(buf,sizeof(result),result);
            printf("%s\n",buf);
}




이렇게 하면 실행된 결과가 buf에 저장이 되고.. C에서 다른 처리를 할 수 있도록 처리하는데 도움을 줄 수 있습니다.