C中的读取功能不会终止

时间:2014-12-25 14:32:19

标签: c file-descriptor

#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

1 个答案:

答案 0 :(得分:1)

您的文件在哪里打开?在读取或写入文件之前,请确保以适当的权限打开文件

请检查读取的返回值。

检查以下链接: http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_075.htm

IMO

printf("%s\n", buf);