複製鏈接
請複製以下鏈接發送給好友

execlp

鎖定
execlp()函數屬於exec()函數族(exec()族函數用一個新的進程映像替換當前進程映像)它是execve(2)函數的前端
外文名
execlp
所屬學科
軟件
語    法
execlp()
execlp(從PATH 環境變量中查找文件並執行)
相關函數:
fork,execl,execle,execv,execve,execvp
頭文件:
#include<unistd.h>
定義函數:
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<unistd.h>
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 <unistd.h>
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[]);