#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char buf[32];
int main(int argc, char* argv[], char* envp[]){
if(argc<2){
printf("pass argv[1] a number\n");
return 0;
}
int fd = atoi(argv[1]) - 0x1234;
printf("%d\n", fd);
int len = 0;
len = read(fd, buf, 32);
printf("%s", buf);
return 0;
}
这是我的代码,但我不能打印buff。因为读取功能不会终止。请帮忙有什么不对?我从终端运行一个程序,如下所示:
./fd 4660
答案 0 :(得分:1)
您的文件在哪里打开?在读取或写入文件之前,请确保以适当的权限打开文件
请检查读取的返回值。
检查以下链接: http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_075.htm
IMO
printf("%s\n", buf);