日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Perl函數(shù)中Perl進程控制函數(shù)用法解析

本文和大家重點討論一下Perl進程處理函數(shù)的用法,主要包括進程啟動函數(shù),進程終止函數(shù)和進程控制函數(shù)等內容,相信通過本文的學習你對Perl進程處理函數(shù)的用法一定會有深刻的認識。

Perl進程處理函數(shù)

1、進程啟動函數(shù)

Perl函數(shù)名 eval

調用語法eval(string)

解說將string看作Perl函數(shù)名語句執(zhí)行。

正確執(zhí)行后,系統(tǒng)變量$@為空串,如果有錯誤,$@中為錯誤信息。

例子$print="print(\"hello,world\\n\");";

eval($print);

結果輸出hello,world

Perl函數(shù)名 system

調用語法system(list)

解說list中第一個元素為程序名,其余為參數(shù)。

system啟動一個進程運行程序并等待其結束,程序結束后錯誤代碼左移八位成為返回值。

例子@proglist=("echo","hello,world!");

system(@proglist);

結果輸出hello,world!

Perl函數(shù)名 fork

調用語法procid=fork();

解說創(chuàng)建程序的兩個拷貝--父進程和子進程--同時運行。子進程返回零,父進程返回非零
值,此值為子程序的進程ID號。

例子

 
 
 
  1. $retval=fork();  
  2. if($retval==0){  
  3. #thisisthechildprocess  
  4. exit;#thisterminatesthechildprocess  
  5. }else{  
  6. #thisistheparentprocess  
  7. }  
  8.  

 

結果輸出無

Perl函數(shù)名 pipe

調用語法pipe(infile,outfile);

解說與fork合用,給父進程和子進程提供通信的方式。送到outfile文件變量的信息可以
通過infile文件變量讀取。步驟:

1、調用pipe

2、用fork將程序分成父進程和子進程

3、一個進程關掉infile,另一個關掉outfile

例子

 
 
 
  1. pipe(INPUT,OUTPUT);  
  2. $retval=fork();  
  3. if($retval!=0){  
  4. #thisistheparentprocess  
  5. close(INPUT);  
  6.  
  7. print("Enteralineofinput:\n");  
  8. $line=;  
  9. printOUTPUT($line);  
  10. }else{  
  11. #thisisthechildprocess  
  12. close(OUTPUT);  
  13. $line=;  
  14. print($line);  
  15. exit(0);  
  16. }  
  17.  

 

結果輸出$

program

Enteralineofinput:

Hereisatestline

Hereisatestline

$

Perl函數(shù)名 exec

調用語法exec(list);

解說與system類似,區(qū)別是啟動新進程前結束當前程序。常與fork合用,當fork分成兩個
進程后,子進程用exec啟動另一個程序。

例子

結果輸出

Perl函數(shù)名 syscall

調用語法syscall(list);

解說調用系統(tǒng)Perl函數(shù)名,list第一個元素是系統(tǒng)調用名,其余為參數(shù)。

如果參數(shù)是數(shù)字,就轉化成C的整型數(shù)(typeint)。否則傳遞字符串的指針。詳見UNIX的幫助Perl函數(shù)名文檔。

使用syscall必須包含文件syscall.pl,即:

require("syscall.ph");

例子

結果輸出

2、進程終止函數(shù)

Perl函數(shù)名  die

調用語法die(message);

解說終止程序并向STDERR輸出錯誤信息。message可以為字符串或列表。如果最后一個參
數(shù)不包含換行符,則程序文件名和行號也被輸出。

例子die("Cannotopeninputfile");

結果輸出Cannotopeninputfileatmyprogline6.

Perl函數(shù)名 warn

調用語法warn(message);

解說與die類似,區(qū)別是不終止程序。

例子warn("Danger!Danger!\n");

結果輸出Danger!Danger!

Perl函數(shù)名 exit

調用語法exit(retcode);

解說終止程序并指定返回值。

例子exit(2);

結果輸出無

Perl函數(shù)名 kill

調用語法kill(signal,proclist);

解說給一組進程發(fā)送信號。

signal是發(fā)送的數(shù)字信號,9為殺掉進程。

proclist是進程ID列表。詳見kill的UNIX幫助。

例子

結果輸出                     #p#

3、進程控制函數(shù)

Perl函數(shù)名 sleep

調用語法sleep(time);

解說將程序暫停一段時間。time是停止的秒數(shù)。返回值為實際停止的秒數(shù)。

例子sleep(5);

結果輸出無


Perl函數(shù)名 wait

調用語法procid=wait();

解說暫停程序執(zhí)行,等待子進程終止。

不需要參數(shù),返回值為子進程ID,如果沒有子進程,返回-1。

例子

結果輸出

Perl函數(shù)名 waitpid

調用語法waitpid(procid,waitflag);

解說暫停程序執(zhí)行,等待特定的子進程終止。procid為等待的進程ID

例子

 
 
 
  1. $procid=fork();  
  2. if($procid==0){  
  3. #thisisthechildprocess  
  4. print("thislineisprintedfirst\n");  
  5. exit(0);  
  6.  
  7. }else{  
  8. #thisistheparentprocess  
  9. waitpid($procid,0);  
  10. print("thislineisprintedlast\n");  
  11. }  
  12.  

 結果輸出$program

thislineisprintedfirst

thislineisprintedlast

$                     #p#

4、其它控制函數(shù)

Perl函數(shù)名  caller

調用語法subinfo=caller();

解說返回調用者的程序名和行號,用于Perl函數(shù)名Debugger。

返回值為三元素的列表:

1、調用處的包名

2、調用者文件名

3、調用處的行號

例子

結果輸出

Perl函數(shù)名 chroot

調用語法chroot(dir);

解說改變程序的根目錄,詳見chroot幫助。

例子

結果輸出

Perl函數(shù)名 local

調用語法local($variable);
解說在語句塊(由大括號包圍的語句集合)中定義局域變量,僅在此語句塊中起作用,對其
的改變不對塊外同名變量造成影響。

千萬不要在循環(huán)中使用,否則每次循環(huán)都定義一個新的局域變量!

例子

結果輸出

Perl函數(shù)名 times

調用語法timelist=times

解說返回該程序及所有子進程消耗的工作時間。

返回值為四個浮點數(shù)的列表:

1、程序耗用的用戶時間

2、程序耗用的系統(tǒng)時間

3、子進程耗用的用戶時間

4、子進程耗用的系統(tǒng)時間

例子

結果輸出


名稱欄目:Perl函數(shù)中Perl進程控制函數(shù)用法解析
URL分享:http://www.5511xx.com/article/ccisddj.html