if (fork() == 0)
{
execlp("tar", "tar", "-zcf", "test.tar.gz", "test.txt", NULL);
}
//...父进程做其他事
//wait(NULL);
//删除test.txt文件
问题来了:
1、如何判断test.txt压缩已经完成,在实际测试时,即使加上wait(NULL),父进程也会删掉test.txt文件,导致test.tar.gz压缩的对象不存在,最终是空内容压缩包。请教如何解决
2、我将wait(NULL)此处换为sleep,可以用,但是有两个不好的地方:sleep会影响父进程处理业务速率;test.txt大小如果不定时,压缩时间也不定,sleep时间如何确定,另外,被压缩的文件在压缩时候貌似其他进程也可以删队。