[root@localhost /]# ( ./address_to_char;cat) | ./overflow
这里的工作怎么样 ( ./address_to_char;cat)
?
和 有啥不同./address_to_char|./overflow
?
答案1
./address_to_char
和的输出cat
都通过管道传输,./overflow
成为单一、连续的数据流。
首先,
./address_to_char
运行,它的输出被重定向到./overflow
的输入。当
./address_to_char
退出时,启动,并且它的输出以相同的方式cat
附加到仍在运行的进程。./overflow
由于
cat
运行时没有指定文件,它从标准输入(在本例中为您的键盘)读取。
答案2
嗯,括号打开一个子 shell,分号将按顺序运行命令。
因此在这种情况下,您正在./address_to_char
子cat
shell 中运行。