什么是二进制文件,如何创建一个?

3 c linux binaryfiles

我想创建一个表示整数的二进制文件.我认为该文件应该是4个字节.我用linux.怎么做?另一个问题:如何将该文件的内容分配给C中的整数?

pax*_*blo 14

在标准C中,fopen()允许模式"wb""rb"二进制模式写入(和读取),因此:

#include <stdio.h>

int main() {
    /* Create the file */
    int x = 1;
    FILE *fh = fopen ("file.bin", "wb");
    if (fh != NULL) {
        fwrite (&x, sizeof (x), 1, fh);
        fclose (fh);
    }

    /* Read the file back in */
    x = 7;
    fh = fopen ("file.bin", "rb");
    if (fh != NULL) {
        fread (&x, sizeof (x), 1, fh);
        fclose (fh);
    }

    /* Check that it worked */
    printf ("Value is: %d\n", x);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这输出:

Value is: 1
Run Code Online (Sandbox Code Playgroud)

  • 记住这一点(通过man fopen):模式字符串还可以包括字母'b'作为最后一个字符或作为上述任意两个字符串中的字符之间的字符.这完全是为了与C89兼容而没有效果; 所有符合POSIX标准的系统(包括Linux)都会忽略'b'.(其他系统可能会以不同方式处理文本文件和二进制文件,如果您对二进制文件执行I/O并且期望您的程序可能移植到非Unix环境,则添加"b"可能是一个好主意.) (2认同)