C 语言中输出二进制数据114


在 C 语言中,输出二进制数据是常见的任务,例如创建二进制文件或将数据发送到设备。本文将介绍 C 语言中输出二进制数据的方法,包括使用标准 I/O 函数和低级文件操作。

1. 使用 `printf` 输出二进制数据

`printf` 函数通常用于输出格式化数据,但它也可以通过使用 `%hhx`、`%hx` 和 `%llx` 格式说明符以十六进制格式输出二进制数据。这些格式说明符分别表示无符号字符、无符号短整型和无符号长长整型。
#include
int main() {
unsigned char byte = 0xAB;
unsigned short int word = 0x1234;
unsigned long long int dword = 0xABCDEF0123456789LL;
printf("Byte: %hhx", byte);
printf("Word: %hx", word);
printf("Dword: %llx", dword);
return 0;
}

2. 使用 `fwrite` 输出二进制数据

`fwrite` 函数用于将数据块写入文件。它可以以二进制模式打开文件,使您可以直接写入二进制数据。
#include
int main() {
unsigned char data[] = {0x11, 0x22, 0x33, 0x44, 0x55};
FILE *fp = fopen("", "wb");
fwrite(data, 1, sizeof(data), fp);
fclose(fp);
return 0;
}

3. 使用 `write` 输出二进制数据

`write` 函数用于直接将数据写入文件描述符。它可以以二进制模式打开文件描述符,使您可以直接写入二进制数据。
#include
#include
int main() {
unsigned char data[] = {0x11, 0x22, 0x33, 0x44, 0x55};
int fd = open("", O_WRONLY | O_CREAT, 0644);
write(fd, data, sizeof(data));
close(fd);
return 0;
}

4. 使用 `mmap` 输出二进制数据

`mmap` 函数用于将文件映射到内存中。这允许您直接访问文件的内容,包括二进制数据。
#include
#include
int main() {
unsigned char *data;
int fd = open("", O_RDWR);
data = mmap(NULL, sizeof(data), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
// 操作 data,例如写入二进制数据
munmap(data, sizeof(data));
close(fd);
return 0;
}


以上是在 C 语言中输出二进制数据的方法。选择哪种方法取决于你的具体需求和应用程序的约束。对于简单的二进制输出,`printf` 函数可能就足够了。对于更复杂的二进制操作,例如写入文件或与设备交互,`fwrite`、`write`、`mmap` 等函数提供了更低级的控制。

2024-10-19


上一篇:C 语言:小写转大写的函数

下一篇:C 语言中二进制输出详解