什么是二进制文件以及如何创建一个?
我想创建一个表示整数的二进制文件。 我认为该文件应该是4个字节。 我用的是Linux。 怎么做? 另一个问题:如何将该文件的内容分配给 C 中的整数?
I would like to create a binary file representing an integer. I think the file should be 4 bytes. I use linux. How to do that?
Another question: How do I assign the content of that file to an integer in C?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在标准 C 中,
fopen()
允许"wb"
模式以二进制模式写入(以及"rb"
读取),因此:这输出:
In standard C,
fopen()
allows the mode"wb"
to write (and"rb"
to read) in binary mode, thus:This outputs:
从操作系统的角度来看,所有文件都是二进制文件。 C(和 C++)提供了一种特殊的“文本模式”,可以执行诸如将换行符扩展为换行符/回车符对(在 Windows 上)之类的操作,但操作系统并不知道这一点。
在 C 程序中,要创建不进行这种特殊处理的文件,请使用 fopen() 的“b”标志:
From the operating system's point of view, all files are binary files. C (and C++) provide a special "text mode" that does stuff like expanding newline characters to newline/carriage-return pairs (on Windows), but the OS doesn't know about this.
In a C program, to create a file without this special treatment, use the "b" flag of fopen():
打开文件进行二进制读/写。 fopen 采用
b
开关作为文件访问模式参数 - 参见此处请参阅维基百科中的 fopen 页面,了解文本文件和二进制文件之间的区别:以及将数据写入二进制文件的代码示例
Open the file for binary read/write. fopen takes a
b
switch for file access mode parameter - see hereSee the fopen page in Wikipedia for the difference between text and binary files as well as a code sample for writing data to a binary file
请参阅
man
了解系统调用open
、write
和read
。See
man
for syscallsopen
,write
andread
.