微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Linux / C编程中,使用函数write在缓冲区上移动指针?

如果我使用一个文本文件作为缓冲区,调用

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

会从缓冲区写入fd1和fd2的相同数据,或者写入fd2的数据将从fd1写入的缓冲区开始?

(潜伏在这里,第一次问一些问题,对不起,如果我做了/写错了什么)

在C,MS Windows系统中创build临时文件

在Linux与Windows中的文件权限

如何写“命令-i interval | 尾巴“输出文件

用cmd删除文件名前缀

Linux:如何批量重命名文件,修剪中间的字符,以及文件名的结尾

Linux将数据从一个文件前置到另一个文件

列出C ++目录中的所有文本文件

比较2个文件夹和查找具有不同字节数的文件

批处理脚本在文本文件中打印searchstring的前一行和下一行

如何检查文件是否存在于bash脚本中的特定目录中?

假设*buffer结果是一个指向至少包含count个字节的对象的指针,并且fd1和fd2是有效的文件描述符,那么你所提供的代码将传递相同的指针值,并对每次调用write()计数。 write()不会以任何方式改变内容,并且函数调用的通过值语义会阻止它修改指针。 指针值被改变的唯一方法是如果write()在某种程度上被定义为你系统上的一个宏。

假设write()不是一个宏,即使每个调用传递了相同的参数,每个调用可能已经结束了写入不同数量的字节。 您必须检查write()的返回值,以查看写入*buffer字节数。

写入的字节将是相同的: http : //linux.die.net/man/2/write (注意const char*类型的缓冲区)。

write()函数用于写入作为参数传递的文件描述符,另一个参数的类型为const char *,(在本例中为缓冲区),这意味着它不会改变。 直到用户明确地修改了缓冲区中的值,例如strncpy(buffer,"bye",3) fd1和fd2都将写入相同的值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐