如果我使用文本文件作为缓冲区,请调用:

write(fd1, *buffer, count)
write(fd2, *buffer, count)

将从缓冲区在FD1和FD2上写入相同的数据,还是从FD1上写入完成的缓冲区点开始写入FD2?
(在这里潜伏了很多,第一次问什么,如果我做错了/写错了很抱歉)

最佳答案

假设*buffer导致指向至少包含count字节的对象的指针,并且fd1fd2是有效的文件描述符,那么您提供的代码将向每个对write()的调用传递相同的指针值和计数。write()不会以任何方式更改内容,函数调用的传递值语义将阻止它修改指针。更改指针值的唯一方法是以某种方式将write()定义为系统上的宏。
假设write()不是一个宏,即使每个调用传递相同的参数,每个调用最终可能会写入不同数量的字节。您必须检查write()的返回值,以查看*buffer中写入了多少字节。

关于c - 在Linux/C编程中,使用功能write也可以将指示器移动到缓冲区上吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24763388/

10-12 00:11
查看更多