示例代码:
#include<unistd.h>
#include<stdio.h>
#include<iostream>
#include<fcntl.h>
#include <linux/types.h>
using namespace std;
int main()
{
char buff[100] ={"1234567"};
int fd = open("/home/xianwj/day2/test.txt",O_CREAT,S_IRWXU);
cout<<fd<<endl;
if(write(fd,buff,sizeof(buff)) < 0)
{
perror("error:");
}
}
结果:
返回错误的文件描述符,原因是因为在open文件的时候未使用O_RDWR(可读可写)对文件进行读写,所以后面写文件会报错。
修改后代码:
#include<unistd.h>
#include<stdio.h>
#include<iostream>
#include<fcntl.h>
#include <linux/types.h>
using namespace std;
int main()
{
char buff[100] ={"1234567"};
int fd = open("/home/xianwj/day2/test.txt",O_CREAT|O_RDWR,S_IRWXU);
cout<<fd<<endl;
if(write(fd,buff,sizeof(buff)) < 0)
{
perror("error:");
}
}
版权声明:本文为qq_41961154原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。