gpt4 book ai didi

linux - DIR 在哪里定义的?

转载 作者:太空狗 更新时间:2023-10-29 11:19:19 25 4
gpt4 key购买 nike

我刚刚开始阅读《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);

最佳答案

DIR 是一个 opaque data type , 你应该像对待它一样对待它,这意味着当你只想使用它时,不要偷看它的定义。

这个DIR自带opendir(),如果你想知道如何使用它们,只需在你的终端运行man opendiropendir() 的手册会告诉你

  1. 你需要包含哪些头文件
  2. 那个函数的原型(prototype)是什么
  3. 如何处理该函数的返回值

还有更多。

关于linux - DIR 在哪里定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com