自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Perl函數(shù)中Perl進(jìn)程控制函數(shù)用法解析

開發(fā) 架構(gòu)
Perl語(yǔ)言中Perl進(jìn)程處理函數(shù)的用法有很多值得學(xué)習(xí)的地方,這里向大家簡(jiǎn)單介紹一下,希望本文的介紹能讓你有所收獲。

本文和大家重點(diǎn)討論一下Perl進(jìn)程處理函數(shù)的用法,主要包括進(jìn)程啟動(dòng)函數(shù),進(jìn)程終止函數(shù)和進(jìn)程控制函數(shù)等內(nèi)容,相信通過(guò)本文的學(xué)習(xí)你對(duì)Perl進(jìn)程處理函數(shù)的用法一定會(huì)有深刻的認(rèn)識(shí)。

Perl進(jìn)程處理函數(shù)

1、進(jìn)程啟動(dòng)函數(shù)

Perl函數(shù)名 eval

調(diào)用語(yǔ)法eval(string)

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

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

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

eval($print);

結(jié)果輸出hello,world

Perl函數(shù)名 system

調(diào)用語(yǔ)法system(list)

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

system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。

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

system(@proglist);

結(jié)果輸出hello,world!

Perl函數(shù)名 fork

調(diào)用語(yǔ)法procid=fork();

解說(shuō)創(chuàng)建程序的兩個(gè)拷貝--父進(jìn)程和子進(jìn)程--同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零
值,此值為子程序的進(jìn)程ID號(hào)。

例子

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

 

結(jié)果輸出無(wú)

Perl函數(shù)名 pipe

調(diào)用語(yǔ)法pipe(infile,outfile);

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

1、調(diào)用pipe

2、用fork將程序分成父進(jìn)程和子進(jìn)程

3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉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.  

 

結(jié)果輸出$

program

Enteralineofinput:

Hereisatestline

Hereisatestline

$

Perl函數(shù)名 exec

調(diào)用語(yǔ)法exec(list);

解說(shuō)與system類似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個(gè)
進(jìn)程后,子進(jìn)程用exec啟動(dòng)另一個(gè)程序。

例子

結(jié)果輸出

Perl函數(shù)名 syscall

調(diào)用語(yǔ)法syscall(list);

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

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

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

require("syscall.ph");

例子

結(jié)果輸出

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

Perl函數(shù)名  die

調(diào)用語(yǔ)法die(message);

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

例子die("Cannotopeninputfile");

結(jié)果輸出Cannotopeninputfileatmyprogline6.

Perl函數(shù)名 warn

調(diào)用語(yǔ)法warn(message);

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

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

結(jié)果輸出Danger!Danger!


Perl函數(shù)名 exit

調(diào)用語(yǔ)法exit(retcode);

解說(shuō)終止程序并指定返回值。

例子exit(2);

結(jié)果輸出無(wú)

Perl函數(shù)名 kill

調(diào)用語(yǔ)法kill(signal,proclist);

解說(shuō)給一組進(jìn)程發(fā)送信號(hào)。

signal是發(fā)送的數(shù)字信號(hào),9為殺掉進(jìn)程。

proclist是進(jìn)程ID列表。詳見kill的UNIX幫助。

例子

結(jié)果輸出                     #p#

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

Perl函數(shù)名 sleep

調(diào)用語(yǔ)法sleep(time);

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

例子sleep(5);

結(jié)果輸出無(wú)


Perl函數(shù)名 wait

調(diào)用語(yǔ)法procid=wait();

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

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

例子

結(jié)果輸出

Perl函數(shù)名 waitpid

調(diào)用語(yǔ)法waitpid(procid,waitflag);

解說(shuō)暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程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.  

 結(jié)果輸出$program

thislineisprintedfirst

thislineisprintedlast

$                     #p#

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

Perl函數(shù)名  caller

調(diào)用語(yǔ)法subinfo=caller();

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

返回值為三元素的列表:

1、調(diào)用處的包名

2、調(diào)用者文件名

3、調(diào)用處的行號(hào)

例子

結(jié)果輸出

Perl函數(shù)名 chroot

調(diào)用語(yǔ)法chroot(dir);

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

例子

結(jié)果輸出

Perl函數(shù)名 local

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

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

例子

結(jié)果輸出

Perl函數(shù)名 times

調(diào)用語(yǔ)法timelist=times

解說(shuō)返回該程序及所有子進(jìn)程消耗的工作時(shí)間。

返回值為四個(gè)浮點(diǎn)數(shù)的列表:

1、程序耗用的用戶時(shí)間

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

3、子進(jìn)程耗用的用戶時(shí)間

4、子進(jìn)程耗用的系統(tǒng)時(shí)間

例子

結(jié)果輸出

【編輯推薦】

  1. Perl語(yǔ)言中Perl函數(shù)用法
  2. Perl函數(shù)手冊(cè)專家指導(dǎo)
  3. 技術(shù)分享 詳解Perl函數(shù)的參數(shù)接收方法
  4. Perl基礎(chǔ) Perl數(shù)組學(xué)習(xí)指南
  5. Perl函數(shù)集-數(shù)組和Perl列表函數(shù)解析
責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-19 14:45:07

Perl進(jìn)程控制函數(shù)

2010-07-19 14:37:01

Perl進(jìn)程啟動(dòng)函數(shù)

2010-07-19 14:13:41

Perl函數(shù)

2010-07-16 16:56:01

Perl構(gòu)造函數(shù)

2010-07-16 17:04:38

Perl方法

2010-07-19 10:01:57

Perl函數(shù)

2010-07-23 15:59:33

Perl encode

2010-07-19 13:49:17

Perl函數(shù)

2010-07-15 10:22:23

Perl控制結(jié)構(gòu)

2010-07-20 09:23:30

Perl構(gòu)造函數(shù)

2010-07-23 13:53:33

Perl grep函數(shù)

2010-07-19 15:01:26

Perl數(shù)學(xué)函數(shù)

2010-07-15 15:54:10

Perl守護(hù)進(jìn)程

2010-07-15 13:50:16

Perl目錄操作函數(shù)

2010-07-19 10:11:58

Perl流程控制語(yǔ)句

2010-07-21 09:57:46

Perl文件

2010-07-21 10:18:41

Perl map函數(shù)

2010-07-21 14:18:27

Perl函數(shù)

2010-07-21 10:10:50

Perl split函

2010-07-13 09:14:21

Perl時(shí)間處理函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)