簡略比擬C說話中的execl()函數與execlp()函數。本站提示廣大學習愛好者:(簡略比擬C說話中的execl()函數與execlp()函數)文章只能為提供參考,不一定能成為您想要的結果。以下是簡略比擬C說話中的execl()函數與execlp()函數正文
C說話execl()函數:履行文件函數
頭文件:
#include <unistd.h>
界說函數:
int execl(const char * path, const char * arg, ...);
函數解釋:execl()用來履行參數path 字符串所代表的文件途徑, 接上去的參數代表履行該文件時傳遞曩昔的argv(0), argv[1], ..., 最初一個參數必需用空指針(NULL)作停止.
前往值:假如履行勝利則函數不會前往, 履行掉敗則直接前往-1, 掉敗緣由存於errno 中.
典范
#include <unistd.h> main() { execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0); }
履行:
/*履行/bin/ls -al /etc/passwd */ -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
C說話execlp()函數:從PATH 情況變量中查找文件並履行
頭文件:
#include <unistd.h>
界說函數:
int execlp(const char * file, const char * arg, ...);
函數解釋:execlp()會從PATH 情況變量所指的目次中查找相符參數file 的文件名, 找到後便履行該文件, 然後將第二個今後的參數當作該文件的argv[0], argv[1], ..., 最初一個參數必需用空指針(NULL)作停止.
前往值:假如履行勝利則函數不會前往, 履行掉敗則直接前往-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