本文主要是介绍linux c write函数写入错误,返回 Bad file descriptor,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
示例代码:
#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:");}
}
这篇关于linux c write函数写入错误,返回 Bad file descriptor的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!