3
我刚刚开始阅读Unix环境下的高级编程。第一个例子是针对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);
你在哪个平台上?在linux上,它在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'' –