linux close 头文件,linux下头文件ourhdr.h的问题

本文针对《UNIX环境高级编程》一书中首个例程的编译错误进行了详细解析,并提供了有效的解决方案,包括如何找到缺失的头文件及调整代码以适配现代编译器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看APUE时的第一个例子:

#include

#include

#include "ourhdr.h"

int

main(int argc,int *argv[])

{

DIR *dp;

struct dirent *dirp;

if(argc != 2)

err_quit("a single argument(the directory name) is required");

if((dp = opendir(argv[1])) == NULL)

err_sys("cann't open %s",argv[1]);

while((dirp = readdir(dp)) != NULL)

printf("%sn",dirp->d_name);

closedir(dp);

exit(0);

}

我在ubuntu8.04下编译后却报了如下错误

lvrainbow@lvrainbow:~/sourcecode/APUE$ cc myls.c

myls.c:3:20: 错误: ourhdr.h:没有该文件或目录

myls.c: 在函数‘main’中:

myls.c:14: 警告: 传递参数 1 (属于‘opendir’)时在不兼容的指针类型间转换

myls.c:14: 错误: ‘NULL’未声明 (在此函数内第一次使用)

myls.c:14: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其

myls.c:14: 错误: 所在的函数内也只报告一次。)

myls.c:18: 警告: 内建函数 ‘printf’ 不兼容的隐式声明

myls.c:21: 警告: 内建函数 ‘exit’ 不兼容的隐式声明

请高手指教!

|

我感觉 楼主一定是在学习

unix环境高级编程

我也遇到了这个问题,可以在下载的源代码的文件夹里搜索 ourhdr.h,应该能找到。

类似的有好多也是。

|

你是在看APUE吧,你看一个文件名的意思,ourheader我们的头文件,这个是作者自定义的一个头文件。linux跟标准C里没有这个头文件的。

你把那个头文件换成,应该就可以了

|

http://www.cnblogs.com/xinyult/MyPosts.html

网上有关于源代码的下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值