execlp(從PATH 環境變數中查找檔案並執行)
相關函式:
fork,execl,execle,execv,execve,execvp
頭檔案:
#include
定義函式:
int execlp(const char * file,const char * arg,....);
函式說明:
execlp()會從PATH 環境變數所指的目錄中查找符合參數file的檔案名稱,找到後便執行該檔案,然後將第二個以後的參數當做該檔案的argv[0]、argv[1]……,最後一個參數必須用空指針(NULL)作結束。如果用常數0來表示一個空指針,則必須將它強制轉換為一個字元指針,否則它將解釋為整形參數,如果一個整形數的長度與char * 的長度不同,那么exec函式的實際參數就將出錯。如果函式調用成功,進程自己的執行代碼就會變成載入程式的代碼,execlp()後邊的代碼也就不會執行了.
返回值:
如果執行成功則函式不會返回,執行失敗則直接返回-1,失敗原因存於errno 中。
錯誤代碼 參考execve()。
範例:
/* 執行ls -al /etc/passwd execlp()會依PATH 變數中的/bin找到/bin/ls */
#include
main()
{
execlp(“ls”,”ls”,”-al”,”/etc/passwd”,(char *)0);
}
執行:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
————————————————————————————————add by love_aiqiu
NAME
execl, execlp, execle, execv, execvp - execute a file
SYNOPSIS
#include
extern char **environ;
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg , ..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);