Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-管道程序输出_C_Unix - Fatal编程技术网

C-管道程序输出

C-管道程序输出,c,unix,C,Unix,我的程序需要读取ls-l的输出并确定哪些文件是目录。所以我尝试了ls-l | my_program.c,但什么也没发生,它应该返回我创建的两个目录。如何读取ls-l中给出的输入?像这样编译程序 gcc my_program.c -o my_program 那就做吧 ls -l | my_program 在运行之前,您必须编译程序。对于C文件,可以使用gcc进行编译 $ gcc my_program.c 这将创建一个名为a.out的可执行文件。运行由以下命令完成 $ ls -l | a.ou

我的程序需要读取ls-l的输出并确定哪些文件是目录。所以我尝试了
ls-l | my_program.c
,但什么也没发生,它应该返回我创建的两个目录。如何读取ls-l中给出的输入?

像这样编译程序

gcc my_program.c -o my_program
那就做吧

ls -l | my_program

在运行之前,您必须编译程序。对于C文件,可以使用gcc进行编译

$ gcc my_program.c
这将创建一个名为a.out的可执行文件。运行由以下命令完成

$ ls -l | a.out 

my_program.c
不是你的程序,它只是你的源代码,你希望发生什么?伙计,先读一些关于c编程语言的教程,然后再处理这些任务。您的源文件不是可执行文件。这太荒谬了。你为什么要用另一种工具来处理文本?目录列表是一项依赖于操作系统的任务,但是,
ls
也是如此。在POSIX系统上,以编程方式使用和迭代目录要简单得多(在大多数系统上,
dirent
struct将包含
d_type
,它将让您知道条目是否是“免费”目录;无需
stat
,除非您需要将dirs的符号链接作为dirs处理)。了解并提供一个。OP没有说明他使用Linux。在POSIX系统上,C编译器是
c99