gpt4 book ai didi

c++ - 终止程序但导致输出文件不被写入的 Shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:49 25 4
gpt4 key购买 nike

我想在后台运行一个收集一些性能数据的程序,然后在前台运行一个应用程序。当前台应用程序完成时,它会检测到这一点并关闭后台应用程序。问题是当后台应用程序在没有先关闭文件的情况下关闭时,我假设文件的输出仍然是空的。有没有办法不断写入输出文件,以便在后台应用程序意外关闭时保留输出?

这是我的 shell 脚本:

./background_application -o=output.csv &
background_pid=$!

./foreground_application
ps -a | grep foreground_application
if pgrep foreground_application > /dev/null
then
result=1
else
result=0
fi

while [ result -ne 0 ]
do
if pgrep RPx > /dev/null
then
result=1
else
result=0
fi
sleep 10
done
kill $background_pid
echo "Finished"

我可以访问用 C++ 编写的后台应用程序的源代码,它是一个基本循环并在每次循环迭代时运行 fflush(outputfile)。

最佳答案

这会更短:

./background_application -o=output.csv &
background_pid=$!
./foreground_application
cp output.csv output_last_look.csv
kill $background_pid
echo "Finished"

关于c++ - 终止程序但导致输出文件不被写入的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com