3
저는 유닉스 환경에서 고급 프로그래밍을 읽기 시작했습니다. 첫 번째 예제는 ls 구현을위한 코드입니다. 내가 이해할 수없는 유일한 것은 DIR이 정의 된 곳입니다. 나는 apue.h (거기 있지 않음)와 dirent.h (거기 있지 않은)에서 보았다. 아무도 그것이 정의 된 곳을 말해 줄 수 있습니까?DIR은 어디에 정의되어 있습니까?
#include "apue.h"
#include <dirent.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
if (argc != 2)
err_quit("usage: ls directory_name");
if ((dp = opendir(argv[1])) == NULL)
err_sys("can't open %s", argv[1]);
while ((dirp = readdir(dp)) != NULL)
printf("%s\n", dirp->d_name);
closedir(dp);
exit(0);
어떤 플랫폼을 사용하고 계십니까? 리눅스에서는 dirent.h에있다 :'typedef struct __dirstream DIR'. 당신은'grep DIR /usr/include/*.h /usr/include/*/*.h |를 실행할 수있다. grep typedef '를 찾아보십시오. 응답에 대해 – isedev
주셔서 감사합니다. 내 시스템의 apr_portable.h에 있었다. – user3233706
@isedev :보다 간단하게 :'grep -r 'typedef. * DIR'/ usr/include' 또는 find/usr/include -type f -name '* .h'| xargs grep 'typedef. * DIR' –