簡體   English   中英

ANSI C-執行過程,等待,刪除文件

[英]ANSI C - Execute Process, Wait, Delete File

我正在嘗試執行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

fork()在子進程中返回零,在父進程中返回正值(假設fork成功),而wait(...)僅在父進程中有意義,因此您需要交換if的內容else塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM