如何重定向 stderr 并使用 popen() 在后台运行



我可以做一个或另一个,但不能同时做两个。如果我使用 & 符号让它在后台运行,那么它会按预期工作:

popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sd%c status=progress &" );

如果我将其设置为将 stderr 重定向到 stdout,那么它会按预期工作:

popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sda status=progress 2>&1" );

但是,如果我尝试同时执行这两项操作,那么它就不再在后台运行。如何同时进行 stderr 的重定向并在后台运行?

popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sda status=progress 2>&1 &" );

我在树莓派(Debian(上做这件事

popen启动另一个独立于调用进程运行的进程。没有必要让 & 符号在后台运行它,它已经这样做了。

最新更新