c - 这个 C 编程读物是什么?

标签 c file-io

这是我试图理解的代码:

#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

int main(void){

    unsigned long word;
    ssize_t nr;

    int file = open("koray.txt",O_RDONLY);

    nr = read(file,&word,sizeof(unsigned long));
    printf("%li\n",word);

}

koray.txt 只有 1 个字符是 k

当我运行程序时,我看到:

koray@koray-VirtualBox:~$ ./a.out
4195435

这个大值是多少?

最佳答案

word 变量中会有随机垃圾,因为您从未对其进行初始化。然后 read 将只能从文件中获取一个字节(nr 可能返回 1,你应该检查一下!)这节省了一个字节,但是 word 变量中仍有 3-7 个字节的未初始化垃圾被打印出来。

关于c - 这个 C 编程读物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415461/

相关文章:

c - Atmel Studio AtTiny104 - 简单代码

c - ModbusTCP - 生成的帧中的 ID 错误

c - fread(&c, 1, 1, input) 和 fgetc(input) 读取一个字节的区别

c - 在 C 中读写 pdf 或二进制数据

c - 为什么 GCC 在不需要时生成堆栈保存指令?

32 位处理器真的可以寻址 2^32 个内存位置吗?

c++ - 无法让 outfile 在 Windows 中使用 C++ 工作

c - while(!feof(file)) 读取额外的行

c++ - 将缓冲区写入文本文件

c - 无法执行连接对象/岛程序