繁体   English   中英

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

[英]What's a binary file and how do I create one?

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

在标准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;
}

这输出:

Value is: 1

从操作系统的角度来看,所有文件都是二进制文件。 C(和C ++)提供了一种特殊的“文本模式”,它可以实现将换行符扩展到换行符/回车对(在Windows上),但操作系统不知道这一点。

在C程序中,要创建没有这种特殊处理的文件,请使用fopen()的“b”标志:

FILE * f = fopen("somefile", "wb" );

打开文件进行二进制读/写。 fopen采用b开关进行文件访问模式参数 - 请参见此处

请参阅Wikipedia中fopen页面,了解文本和二进制文件之间的区别以及将数据写入二进制文件的代码示例

请参阅man for syscalls openwriteread

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM