DIR在哪里定义?

时间:2014-03-02 00:38:09

标签: linux unix

我刚刚开始在Unix环境中阅读高级编程。第一个例子是ls实现,代码如下。我唯一不明白的是DIR定义在哪里。我查看了apue.h(不在那里)和dirent.h(不在那里)。谁能告诉我它的定义?

#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);

1 个答案:

答案 0 :(得分:1)

DIRopaque data type,您应该将其视为一个,这意味着当您只想使用它时,请不要查看其定义。

DIR附带opendir(),如果您想知道如何使用它们,只需在终端上运行man opendiropendir()的手册就会告诉您< / p>

  1. 您需要包含哪些头文件
  2. 该功能的原型是什么
  3. 如何处理该函数的返回值
  4. 等等。