我很好奇为什么当从文件读取少于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 ×1