小编usi*_*ace的帖子

C读取的最小字节数

我很好奇为什么当从文件读取少于4个字节时,输出已损坏.

这是我的测试文件:

user@UnixVM:~/labs$ cat foo.txt
helloworld
Run Code Online (Sandbox Code Playgroud)

还有一个从文件中读取的简单程序:

int main()
{
        int file=0;
        if((file=open("foo.txt",O_RDONLY)) < -1)
                return 1; 
        char buffer[11];        
        read(file,buffer,3);
        printf("%s\n",buffer);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出已损坏,执行之间可能不同:

user@UnixVM:~/labs$ gcc -Wall lab1_4.c -o lab1_4 ; ./lab1_4
hel2
user@UnixVM:~/labs$ gcc -Wall lab1_4.c -o lab1_4 ; ./lab1_4
hel?
Run Code Online (Sandbox Code Playgroud)

但每次我将字节数读取大于或等于4(read(file,buffer,4);),它都可以正常工作.

c

2
推荐指数
1
解决办法
61
查看次数

标签 统计

c ×1