成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Perl函數中Perl進程控制函數用法解析

開發 架構
Perl語言中Perl進程處理函數的用法有很多值得學習的地方,這里向大家簡單介紹一下,希望本文的介紹能讓你有所收獲。

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

Perl進程處理函數

1、進程啟動函數

Perl函數名 eval

調用語法eval(string)

解說將string看作Perl函數名語句執行。

正確執行后,系統變量$@為空串,如果有錯誤,$@中為錯誤信息。

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

eval($print);

結果輸出hello,world

Perl函數名 system

調用語法system(list)

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

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

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

system(@proglist);

結果輸出hello,world!

Perl函數名 fork

調用語法procid=fork();

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

例子

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

 

結果輸出無

Perl函數名 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=<STDIN>;  
  9. printOUTPUT($line);  
  10. }else{  
  11. #thisisthechildprocess  
  12. close(OUTPUT);  
  13. $line=<INPUT>;  
  14. print($line);  
  15. exit(0);  
  16. }  
  17.  

 

結果輸出$

program

Enteralineofinput:

Hereisatestline

Hereisatestline

$

Perl函數名 exec

調用語法exec(list);

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

例子

結果輸出

Perl函數名 syscall

調用語法syscall(list);

解說調用系統Perl函數名,list第一個元素是系統調用名,其余為參數。

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

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

require("syscall.ph");

例子

結果輸出

2、進程終止函數

Perl函數名  die

調用語法die(message);

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

例子die("Cannotopeninputfile");

結果輸出Cannotopeninputfileatmyprogline6.

Perl函數名 warn

調用語法warn(message);

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

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

結果輸出Danger!Danger!


Perl函數名 exit

調用語法exit(retcode);

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

例子exit(2);

結果輸出無

Perl函數名 kill

調用語法kill(signal,proclist);

解說給一組進程發送信號。

signal是發送的數字信號,9為殺掉進程。

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

例子

結果輸出                     #p#

3、進程控制函數

Perl函數名 sleep

調用語法sleep(time);

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

例子sleep(5);

結果輸出無


Perl函數名 wait

調用語法procid=wait();

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

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

例子

結果輸出

Perl函數名 waitpid

調用語法waitpid(procid,waitflag);

解說暫停程序執行,等待特定的子進程終止。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、其它控制函數

Perl函數名  caller

調用語法subinfo=caller();

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

返回值為三元素的列表:

1、調用處的包名

2、調用者文件名

3、調用處的行號

例子

結果輸出

Perl函數名 chroot

調用語法chroot(dir);

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

例子

結果輸出

Perl函數名 local

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

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

例子

結果輸出

Perl函數名 times

調用語法timelist=times

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

返回值為四個浮點數的列表:

1、程序耗用的用戶時間

2、程序耗用的系統時間

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

4、子進程耗用的系統時間

例子

結果輸出

【編輯推薦】

  1. Perl語言中Perl函數用法
  2. Perl函數手冊專家指導
  3. 技術分享 詳解Perl函數的參數接收方法
  4. Perl基礎 Perl數組學習指南
  5. Perl函數集-數組和Perl列表函數解析
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-19 14:45:07

Perl進程控制函數

2010-07-19 14:37:01

Perl進程啟動函數

2010-07-16 16:56:01

Perl構造函數

2010-07-19 14:13:41

Perl函數

2010-07-16 17:04:38

Perl方法

2010-07-19 10:01:57

Perl函數

2010-07-23 15:59:33

Perl encode

2010-07-15 10:22:23

Perl控制結構

2010-07-19 13:49:17

Perl函數

2010-07-15 15:54:10

Perl守護進程

2010-07-20 09:23:30

Perl構造函數

2010-07-19 15:01:26

Perl數學函數

2010-07-23 13:53:33

Perl grep函數

2010-07-15 13:50:16

Perl目錄操作函數

2010-07-21 09:57:46

Perl文件

2010-07-19 10:11:58

Perl流程控制語句

2010-07-21 10:18:41

Perl map函數

2010-07-21 14:18:27

Perl函數

2010-07-13 09:14:21

Perl時間處理函數

2010-07-21 10:10:50

Perl split函
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品日产第一区二区三区 | 久久高清免费视频 | 亚洲精品一区二区三区四区高清 | 国产高清精品一区二区三区 | 日韩国产一区二区三区 | 国偷自产av一区二区三区 | 日韩三级在线观看 | 6996成人影院网在线播放 | 国产91精品久久久久久久网曝门 | 免费一级黄色 | 日韩高清一区 | 欧美国产视频 | 日韩不卡三区 | 国产日韩免费视频 | 91国内外精品自在线播放 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 看av在线 | 青青久久av北条麻妃海外网 | 一二三区av| 国产一区二区三区在线看 | 中文字幕在线观看国产 | 国产精品久久久久久久久 | 国产免费黄网 | 国产精品久久久久久福利一牛影视 | 91久久精品一区二区二区 | 狠狠狠色丁香婷婷综合久久五月 | 日本成人免费观看 | 最新日韩在线视频 | 在线视频一区二区三区 | 国产精品jizz在线观看老狼 | 久久成人精品视频 | 午夜在线影院 | 欧美日韩亚洲在线 | 91久久精品国产 | 国外成人免费视频 | 国产精品欧美一区二区三区不卡 | 成人在线免费视频 | 丁香久久 | 精品91久久| 国内自拍视频在线观看 | 一区二区三区中文字幕 |