当前位置: 技术问答>linux和unix
关于UNIX环境高级编程里面的程序,问些简单的问题
来源: 互联网 发布时间:2016-12-06
本文导语: //#include "/usr/include/apue.h" #include int main(int argc,char *argv[]) { DIR *dp; struct dirent *dirp; if(argc != 2) err_quit("usage: ls directory_name"); ...
//#include "/usr/include/apue.h"
#include
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("%sn",dirp->d_name);
closedir(dp);
exit(0);
}
ls.c: 在函数‘main’中:
ls.c:10: 错误:‘NULL’未声明(在此函数内第一次使用)
ls.c:10: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
ls.c:10: 错误:所在的函数内也只报告一次。)
ls.c:13: 警告:隐式声明与内建函数‘printf’不兼容
ls.c:16: 警告:隐式声明与内建函数‘exit’不兼容
这个程序我编译过了,不过如果把最上面一行给注释,有下面的问题。
linux里面没有定义NULL,printf和exit吗?
他们的头函数是啥?
#include
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("%sn",dirp->d_name);
closedir(dp);
exit(0);
}
ls.c: 在函数‘main’中:
ls.c:10: 错误:‘NULL’未声明(在此函数内第一次使用)
ls.c:10: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
ls.c:10: 错误:所在的函数内也只报告一次。)
ls.c:13: 警告:隐式声明与内建函数‘printf’不兼容
ls.c:16: 警告:隐式声明与内建函数‘exit’不兼容
这个程序我编译过了,不过如果把最上面一行给注释,有下面的问题。
linux里面没有定义NULL,printf和exit吗?
他们的头函数是啥?
|
#include
#include
#include
|
LZ没有仔细看书上的声明,UNIX环境高级编程里面程序的头文件,作者重新编写了。看书后面的目录就知道了
|
恩,头文件作者自己写的
|
#include "/usr/include/apue.h"
这个文件是书作者写的,里面包含了常用的头文件
这个文件是书作者写的,里面包含了常用的头文件