您的位置:首页 > 运维架构

看谁能找出bug★☆open函数总是返回-1

2017-04-06 21:22 274 查看
总于明白基础有多重要,今天被一个open函数把我整死

平时open完之后直接就不管了,一般也不会出现打不开的情况

今天被这个坏习惯打了一巴掌

看谁能找出bug,真的是很基础的东西

错误代码:

int main()
{
int fd;
char buf[10] = "dong1";
fd1 = open("/home/dong/temp", O_RDWR | O_CREAT);
int s = write(fd,buf,sizeof(buf));
close(fd);
return 0;
}


第一次运行没错,再次运行就一直出错,总以为是write的问题

正确代码:

int main()
{
int fd;
char buf[10] = "dong1";
fd1 = open("/home/dong/temp", O_RDWR | O_CREAT,S_IRWXU);
int s = write(fd,buf,sizeof(buf));
close(fd);
return 0;
}


如果看出来了说明你基础还是很好的,还没看出来的说明和我一样水。O(∩_∩)O哈哈~

解析:如果open函数中有O_CREAT这个参数,那么需要给出open的第三个参数。不然你就只能往这个文件写一次数据,第二次再写你就没权限了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bug c语言 linux open函数