gpt4 book ai didi

c - open命令适合二进制文件操作吗

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:16 25 4
gpt4 key购买 nike

我有一个 FTP 应用程序通过 TCP 套接字发送二进制文件。

我已经使用 open 打开文件并读取二进制文件,就好像它们是字符串文件一样(程序可以很好地处理文本文件),然后通过 TCP 发送它们。

但我正在努力处理另一端的输出。我想知道 fopen 是否更适合二进制文件或二进制文件是否可以被视为文本文件。

最佳答案

在 Linux 上,没有二进制文件或文本文件的概念(与相关的 Windows 相反),它们仅出现在 C99 标准中 fopen(3)函数说:

The mode string can also include the letter 'b' either as a last character or as a character between the characters in any of the two- character strings described above. This is strictly for compatibility with C89 and has no effect; the 'b' is ignored on all POSIX conforming systems, including Linux. (Other systems may treat text files and binary files differently, and adding the 'b' may be a good idea if you do I/O to a binary file and expect that your program may be ported to non-UNIX environments.)

当然你可以使用 open(2)直接系统调用(顺便说一句,fopen 使用它)。

但是,二进制文件的可移植性(例如由于 endianness 问题)远不如文本文件。了解 serialization , 所以也许更喜欢文本格式和 protocols例如JSON到二进制的。

关于客户端的 FTP,考虑使用现有的库,如 libcurl

关于c - open命令适合二进制文件操作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com