LP を実行して PDF ドキュメントを印刷し、終了するのを待ちます。存在した後、unlink(); でファイルを削除しようとしています。
ただし、execv が LP を実行する前でも待機は終了します。これを処理する方法と、execv が終了するまで待機が待機しない理由がよくわかりません。
これを達成する他の方法はありますか?
if(fork())
{
fprintf(stderr, "Executing command %s %s", "/usr/bin/lp", homedir);
char *const parmList[] = {"/usr/bin/lp", homedir, (char *)0};
execv("/usr/bin/lp", parmList );
}else
{
int pid, status;
fprintf(stderr, "Wait\n");
pid = wait(&status);
fprintf(stderr, "Finished waiting.\n");
unlink(homedir);
}
上記のコードを実行すると、出力は次のようになります。
Wait
Finished waiting.
Executing command /usr/bin/lp /home/user/Docs/test.pdf
/usr/bin/lp: Error - unable to access "/home/user/Docs/test.pdf" - No such file or directory