我可以做一个或另一个,但不能同时做两个。如果我使用 & 符号让它在后台运行,那么它会按预期工作:
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
启动另一个独立于调用进程运行的进程。没有必要让 & 符号在后台运行它,它已经这样做了。