如果我使用文本文件作为缓冲区,请调用:
write(fd1, *buffer, count)
write(fd2, *buffer, count)
将从缓冲区在FD1和FD2上写入相同的数据,还是从FD1上写入完成的缓冲区点开始写入FD2?
(在这里潜伏了很多,第一次问什么,如果我做错了/写错了很抱歉)
最佳答案
假设*buffer
导致指向至少包含count
字节的对象的指针,并且fd1
和fd2
是有效的文件描述符,那么您提供的代码将向每个对write()
的调用传递相同的指针值和计数。write()
不会以任何方式更改内容,函数调用的传递值语义将阻止它修改指针。更改指针值的唯一方法是以某种方式将write()
定义为系统上的宏。
假设write()
不是一个宏,即使每个调用传递相同的参数,每个调用最终可能会写入不同数量的字节。您必须检查write()
的返回值,以查看*buffer
中写入了多少字节。
关于c - 在Linux/C编程中,使用功能write也可以将指示器移动到缓冲区上吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24763388/