簡單比較C語言中的execl()函數(shù)與execlp()函數(shù)
C語言execl()函數(shù):執(zhí)行文件函數(shù)
頭文件:
#include <unistd.h>
定義函數(shù):
int execl(const char * path, const char * arg, ...);
函數(shù)說明:execl()用來執(zhí)行參數(shù)path 字符串所代表的文件路徑, 接下來的參數(shù)代表執(zhí)行該文件時傳遞過去的argv(0), argv[1], ..., 最后一個參數(shù)必須用空指針(NULL)作結(jié)束.
返回值:如果執(zhí)行成功則函數(shù)不會返回, 執(zhí)行失敗則直接返回-1, 失敗原因存于errno 中.
范例
#include <unistd.h>
main()
{
execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0);
}
執(zhí)行:
/*執(zhí)行/bin/ls -al /etc/passwd */ -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
C語言execlp()函數(shù):從PATH 環(huán)境變量中查找文件并執(zhí)行
頭文件:
#include <unistd.h>
定義函數(shù):
int execlp(const char * file, const char * arg, ...);
函數(shù)說明:execlp()會從PATH 環(huán)境變量所指的目錄中查找符合參數(shù)file 的文件名, 找到后便執(zhí)行該文件, 然后將第二個以后的參數(shù)當做該文件的argv[0], argv[1], ..., 最后一個參數(shù)必須用空指針(NULL)作結(jié)束.
返回值:如果執(zhí)行成功則函數(shù)不會返回, 執(zhí)行失敗則直接返回-1, 失敗原因存于errno 中.
錯誤代碼:參考 execve().
范例
/* 執(zhí)行l(wèi)s -al /etc/passwd execlp()會依PATH 變量中的/bin 找到/bin/ls */
#include <unistd.h>
main()
{
execlp("ls", "ls", "-al", "/etc/passwd", (char *)0);
}
執(zhí)行:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
相關(guān)文章
C語言中strlen() strcpy() strcat() strcmp()函數(shù)的實現(xiàn)方法
這篇文章主要介紹了C語言中strlen() strcpy() strcat() strcmp()函數(shù)的實現(xiàn)方法,需要的朋友可以參考下2017-08-08
Clion2020.2.x最新激活碼破解版附安裝教程(Mac Linux Windows)
Clion2020增加了很多新特性,修復了大量bug,大大提高了開發(fā)效率。這篇文章主要介紹了Clion2020.2.x最新激活碼破解版附安裝教程(Mac Linux Windows),需要的朋友可以參考下2020-11-11

