【发布时间】:2019-02-17 00:31:48
【问题描述】:
当我从标准输入在 linux 上运行我的 C 脚本时,我需要接受路径名。
我已经尝试过:-
int file = open(STDIN_FILENO, O_RDONLY)
“文件”总是分配给-1(文件未打开)。
我希望跑步
./myScript < test.txt
通过“test.txt”打开
open("test.txt", O_RDONLY); // expected after running the previous command
【问题讨论】:
-
STDIN_FILENO已经是一个开放的描述符。 Shell 已为您调用 open 并将生成的文件描述符移动到STDIN_FILENO,这是0的宏。 -
那是不同的问题。我需要使用系统调用 open()
-
从标准输入读入一个字符数组。使用 char 数组中的值作为打开的文件名。见
fgets() -
fgets() 也不是系统调用。我不能使用
库
标签: c linux linux-kernel system-calls