Perl進(jìn)程啟動(dòng)函數(shù)用法解析
本文和大家重點(diǎn)討論一下Perl語(yǔ)言中有哪些Perl進(jìn)程啟動(dòng)函數(shù),以及這些函數(shù)的用法,相信通過本文的學(xué)習(xí)你對(duì)Perl進(jìn)程啟動(dòng)函數(shù)的用法一定會(huì)有深刻的認(rèn)識(shí)。下面請(qǐng)看本文的詳細(xì)介紹。
Perl進(jìn)程啟動(dòng)函數(shù)
Perl進(jìn)程啟動(dòng)函數(shù)名 eval
調(diào)用語(yǔ)法eval(string)
解說將string看作Perl進(jìn)程啟動(dòng)函數(shù)名 語(yǔ)句執(zhí)行。
正確執(zhí)行后,系統(tǒng)變量$@為空串,如果有錯(cuò)誤,$@中為錯(cuò)誤信息。
例子$print="print(\"hello,world\\n\");";
eval($print);
結(jié)果輸出hello,world
Perl進(jìn)程啟動(dòng)函數(shù)名 system
調(diào)用語(yǔ)法system(list)
解說list中第一個(gè)元素為程序名,其余為參數(shù)。
system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。
例子@proglist=("echo","hello,world!");
system(@proglist);
結(jié)果輸出hello,world!
Perl進(jìn)程啟動(dòng)函數(shù)名 fork
調(diào)用語(yǔ)法procid=fork();
解說創(chuàng)建程序的兩個(gè)拷貝--父進(jìn)程和子進(jìn)程--同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零
值,此值為子程序的進(jìn)程ID號(hào)。
例子
- $retval=fork();
 - if($retval==0){
 - #thisisthechildprocess
 - exit;#thisterminatesthechildprocess
 - }else{
 - #thisistheparentprocess
 - }
 
結(jié)果輸出無
Perl進(jìn)程啟動(dòng)函數(shù)名 pipe
調(diào)用語(yǔ)法pipe(infile,outfile);
解說與fork合用,給父進(jìn)程和子進(jìn)程提供通信的方式。送到outfile文件變量的信息可以
通過infile文件變量讀取。步驟:
1、調(diào)用pipe
2、用fork將程序分成父進(jìn)程和子進(jìn)程
3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉outfile
例子
- pipe(INPUT,OUTPUT);
 - $retval=fork();
 - if($retval!=0){
 - #thisistheparentprocess
 - close(INPUT);
 - print("Enteralineofinput:\n");
 - $line=<STDIN>;
 - printOUTPUT($line);
 - }else{
 - #thisisthechildprocess
 - close(OUTPUT);
 - $line=<INPUT>;
 - print($line);
 - exit(0);
 - }
 
結(jié)果輸出$
- program
 - Enteralineofinput:
 - Hereisatestline
 - Hereisatestline
 - $
 
Perl進(jìn)程啟動(dòng)函數(shù)名 exec
調(diào)用語(yǔ)法exec(list);
解說與system類似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個(gè)
進(jìn)程后,子進(jìn)程用exec啟動(dòng)另一個(gè)程序。
例子
結(jié)果輸出
Perl進(jìn)程啟動(dòng)函數(shù)名 syscall
調(diào)用語(yǔ)法syscall(list);
解說調(diào)用系統(tǒng)Perl進(jìn)程啟動(dòng)函數(shù)名 ,list第一個(gè)元素是系統(tǒng)調(diào)用名,其余為參數(shù)。
如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的整型數(shù)(typeint)。否則傳遞字符串的指針。詳見UNIX的幫助Perl進(jìn)程啟動(dòng)函數(shù)名 文檔。
使用syscall必須包含文件syscall.pl,即:
require("syscall.ph");
例子
結(jié)果輸出
【編輯推薦】















 
 
 
 
 
 
 