当前位置: 技术问答>linux和unix
我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
来源: 互联网 发布时间:2014-11-28
本文导语: 比如 open() 函数,有三个头文件 , , 。假如我要用此函数,是否要将三个头文件写上去?但我看书 里的例子,好象不用的。还有很多函数也是这样,有多个头文件。那这三 个文件,究竟那个是必定要用的?在Win...
比如 open() 函数,有三个头文件 , ,
。假如我要用此函数,是否要将三个头文件写上去?但我看书
里的例子,好象不用的。还有很多函数也是这样,有多个头文件。那这三
个文件,究竟那个是必定要用的?在Windows 中,只用一个
就行了。
。假如我要用此函数,是否要将三个头文件写上去?但我看书
里的例子,好象不用的。还有很多函数也是这样,有多个头文件。那这三
个文件,究竟那个是必定要用的?在Windows 中,只用一个
就行了。
|
一般open()函数是不用包含这三个头文件的。 里面定义了一些特殊的变量类型,主要定义了一些关于返回文件状态的函数和结构,包含了对文件的控制信息,这三个文件可能因不同的Unix版本而不同,你可以到/usr/include下面看一下这三个文件的内容。如果你要调用的系统函数里用到了其中一个头文件里定义的函数或结构,就要包括这些头文件,但并不一定三个头文件全部包括进去。
|
是动态连接的,库在/usr/lib下面!
同意楼上的说法!
一般情况下包含就可以了!
同意楼上的说法!
一般情况下包含就可以了!
|
包含头文件和是不是动态连结库没有关系;
c程序首先经过预处理,头文件的作用就是保证预处理后的文件是
一个正确的c文件; gcc -E hello.c > res.c 可以看到预处理完的结果。
c程序首先经过预处理,头文件的作用就是保证预处理后的文件是
一个正确的c文件; gcc -E hello.c > res.c 可以看到预处理完的结果。
|
只要是你man出来里面有的,你都该包括进去,没必要跟windows比较
|
主要看各个系统的man
某个函数在linux, solaris系统中可能在不同的头文件中
某个函数在linux, solaris系统中可能在不同的头文件中