#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, –