#include<stdio.h>
#include<fcntl.h>
int main(int argc, char *argv[])
{
char buffer[6];
int gotten;
printf("%s",argv[1]);
int fh = open(argv[1],O_RDONLY);
printf("File handle %d\n", fh);
while (gotten = read(fh, buffer, 6)) {
buffer[gotten] = '\0';
printf("%s", buffer);
}
return 0;
}
这部分以文件为输入并打印文件的内容。我提供的文本文件包含“hello”。 buffer[gotten] = '\0';
在这段代码中做了什么?什么是“buffer [gotten] =' 0';”在这个代码中呢?
它增加了nul-terminator并可能导致缓冲区溢出 - 因为read可以返回6, –