溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Perl中怎么使用進(jìn)程處理函數(shù)

發(fā)布時(shí)間:2021-07-14 14:26:58 來(lái)源:億速云 閱讀:146 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Perl中怎么使用進(jìn)程處理函數(shù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

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

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

函數(shù)名eval

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

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

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

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

eval($print);

結(jié)果輸出hello,world

函數(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!

函數(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)。

例子

$retval=fork();   if($retval==0){   #thisisthechildprocess   exit;#thisterminatesthechildprocess   }else{   #thisistheparentprocess   }

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

函數(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

例子

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   $

函數(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é)果輸出

函數(shù)名syscall

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

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

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

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

require("syscall.ph");

例子

結(jié)果輸出

2、Perl進(jìn)程處理函數(shù)中Perl進(jìn)程終止函數(shù)

函數(shù)名die

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

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

例子die("Cannotopeninputfile");

結(jié)果輸出Cannotopeninputfileatmyprogline6.

函數(shù)名warn

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

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

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

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


函數(shù)名exit

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

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

例子exit(2);

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

函數(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列表。詳見(jiàn)kill的UNIX幫助。

以上就是Perl中怎么使用進(jìn)程處理函數(shù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI