write函数linux
Ⅰ linux C里面的write函数的第一个参数是怎么判断的
write 函数的第一个参数是 open 函数返回的文件描述符,和windows里一般文件的句柄是对应的,
这段代码中之所以这么用,是因为该程序是从控制台shell启动的,是shell的子进程,他继承了shell默认打开了文件描述符0 1 2 。
0 1 2 分别对应 标准输入 标准输出 标准出错,(在没有重定向、管道的情况下 对应了键盘 显示器 显示器)。
Ⅱ Linux 中用write函数向串口写入数据 read函数能读取到吗
使用二进制存储
write(fd, student, sizeof(student));
read(fd, student, sizeof(student));
如好裤胡果要读取里面第3个student的内纯搜容:
lseek(fd, 2 * sizeof(student), SEEK_SET); //即从开始搜索2个student那么长。
这样的前提是student中没有指针,因为每次运行指针的内容是不确定的。友拦
Ⅲ 关于linux write函数的一个问题“Bad file descriptor”
你的错误是:银野胡
write file text.txt error !
msg:Bad file descriptor
显然,是没写权限,改锋拦fd = open(fName, O_CREAT | O_APPEND)
为fd = open(fName, O_CREAT | O_APPEND | O_RDWR) 就好脊卜了
Ⅳ Linux C write函数
好隐蔽的一个错误!! if ((fd=open(pathname, FLAGS, MODE)==-1)) 这句,括号的位置错误了
应该是: if ( (fd=open(pathname, FLAGS, MODE))==-1)
原写法,导致fd值为0,成了标准输入(终端)了,所以,lseek就会一直报错!
Ⅳ linux read/write和fread/fwrite有什么区别
read/write函数是Linux“系统调用”,Linux中系统调用相当于Windows平台API的概念,而fread/fwrite则是标准函数库中提供的函数。相对于fread/fwrite库函数,read/write系统调用是属于更加底层的文件访问,而与库函数相比,系统调用的资源开销要大些,这是因为系统调用更加底层而没有缓冲机制,而且执行系统调用会马上进行内核代码和用户代码之间的切换。通常使用系统调用是读写大量的数据,尽量避免一次读写一个字符这样的使用情况。而fread/fwrite库函数是属于更高层的接口,比如fwrite就提供输出缓冲功能,所以使用fwrite函数时可以写任意长度的数据。这就是它们的区别。
Ⅵ 关于linux的write函数
1.功能
将数据写入已打开的文件内
2.相关函数
open,read,fcntl,close,lseek,sync,fsync,fwrite
3.表头文件
#include
4.定义函数
ssize_t
write
(int
fd,const
void
*
buf,size_t
count);
5.函数说明
write()会把参数buf所指的内存写入消灶count个字节到参数fd所指的文件内。当然,文件读写位置也会随之移动。
6.返回值
如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。
7.错误代码
eintr
此调用被信号所中断。
eagain
当使用不可阻断i/o
时(o_nonblock),若无拿迟扮数据可读取则返回此值。
ebadf
参数fd非有效的旦盯文件描述词,或该文件已关闭。
Ⅶ 关于linux的write函数
可以直接纯派把int的地址强制转做颤贺为char*来写入。如
int i = 1234;
write(fd, (char*)&i, sizeof(int));
同洞猛样道理,read也类似:
read(fd, (char*)&i, sizeof(int));
Ⅷ linux中read,write和recv,send的区别
Linux的recv、send函数和read、write函数都可以用于套接字编程。
区别:
1、recv、send只用于套接字通信;
2、read、write是底层系统调用,只要是文件操作就都可以用, 比如套接字操作,套接字描述符属于是文件描述符的一种,套接字本身在Linux上就叫做套接字文件。
所以read、write函数不光可以用于套接字编程,也可以用于读取其他各种文件,比如用于文件编程读写普通文件。
Ⅸ linux中read,write和recv,send的区别
Linux的recv、send函数和read、write函数都可以用于套接字编程。不同的是recv、send只用于套接字通信;而read、write是底层系统调用,只要是文件操作就都可以用, 比如套接字操作,套接字描述符属于是文件描述符的一种,套接字本身在Linux上就叫做套接字文件。所以read、write函数不光可以用于套接字编程,也可以用于读取其他各种文件,比如用于文件编程读写普通文件。这就是它们之间的区别