如何在 C 代码中访问管道参数?
测试.c
int main( int argc, char *argv[] ) {
int i = 0;
for (i = 0; i < argc; i++) {
printf("argv[%d] = %s\n", i, argv[i]);
}
}
bash :
cat file.txt | ./test
它仅打印第一个参数argv[0] = ./test
。如何在 C 代码中访问 file.txt 的内容(作为参数)?
最佳答案
通过管道,您的程序可以在其标准输入中获取 file.txt
的内容。因此,从 stdin
读取。例如,您可以使用 fgets()
逐行读取:
#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
char line[1024];
while(fgets(line, sizeof line, stdin)) {
printf("%s", line);
}
}
关于c - bash + c 管道参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454182/