在 linux 中使用管道同时写入文件

Simultaneous writing in a file using pipes in linux

我有一个文件 names.txt Pop,Jack 和一个文件 surnames.txt Ioan,Gry。我需要获得以下输出,person.txt,Pop Ioan,Jack Gry。我必须创建两个程序:

我需要使用管道进行同步。我该怎么做?

每个程序将打开一个命名管道用于读取和一个用于写入,person.txt 用于追加(或只写入标准输出),以及适当的输入文件(或从标准输入读取)。一个程序,可能由命令行 arg 指定,将首先读取一行并将其写入输出,然后将单个字节写入一个管道,然后阻塞从另一个管道读取。另一个程序等待第一个管道上的字节,然后在将字节写入另一个管道之前写入其文本和换行符。所以你只是传递一个令牌(写入管道的字节)来同步写入。将管道的名称作为命令行参数简单地传递给程序可能会很好,然后通过将单个字节写入其中一个管道来启动整个过程,但是程序并不相同,因为必须编写一个新队。最好的办法是编写一个程序,但使用不同的命令行参数调用它。 (我不知道这是否符合 "two programs"。)