LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 849|回复: 13

打开文件问题

[复制链接]
发表于 2005-10-17 21:53:07 | 显示全部楼层 |阅读模式
我用了一个很简单的函数:
open("file",O_RDONLY);
为什么编译说O_RDONLY没有定义!!
需要包含哪个头文件啊?
我在/usr/include里搜了下,没哪个头文件里有这个定义。
还有怎么连true 和false都没有定义,需要头文件??

刚开始在linux下编程,没什么资料,举步维艰啊。
发表于 2005-10-17 22:11:36 | 显示全部楼层
open("file","O_RDONLY");
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-17 22:14:56 | 显示全部楼层
不对啊,open是这样定义的啊:
int open(const char *pathname,int flags);
后面的flags是int型的。
回复 支持 反对

使用道具 举报

发表于 2005-10-17 23:05:36 | 显示全部楼层
man 2 open
...
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-17 23:22:30 | 显示全部楼层
好了,终于找到了,原来则/usr/include/bits/fcntl.h里面,谢谢了
回复 支持 反对

使用道具 举报

发表于 2005-10-18 01:39:13 | 显示全部楼层
However,
Never include <bits/fcntl.h> directly

do what "man 2 open" told you to
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-19 11:06:24 | 显示全部楼层
这个man 2 open有什么区别啊,我用 man open显示的结果好像一样啊。
回复 支持 反对

使用道具 举报

发表于 2005-10-19 12:07:30 | 显示全部楼层
linux下的c标准好像还没有boolean型,用int来表示吧
回复 支持 反对

使用道具 举报

发表于 2005-10-19 13:12:00 | 显示全部楼层
标准里已经有 _Bool 类型了。
回复 支持 反对

使用道具 举报

发表于 2005-10-19 23:58:39 | 显示全部楼层
<sys/stat.h>
首先man,如果真的想找具体的头文件

find /usr/include/ -name *.h | xargs fgrep 'define O_RDONLY'
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表