Perl进程启动函数用法解析

本文和大家重点讨论一下Perl语言中有哪些Perl进程启动函数,以及这些函数的用法,相信通过本文的学习你对Perl进程启动函数的用法一定会有深刻的认识。下面请看本文的详细介绍。

Perl进程启动函数

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. }  
  9.  

 结果输出无

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. print("Enteralineofinput:\n");  
  7. $line=<STDIN>;  
  8. printOUTPUT($line);  
  9.  
  10. }else{  
  11. #thisisthechildprocess  
  12. close(OUTPUT);  
  13. $line=<INPUT>;  
  14. print($line);  
  15. exit(0);  
  16. }  
  17.  

 结果输出$

 

 
 
 
  1. program  
  2. Enteralineofinput:  
  3. Hereisatestline  
  4. Hereisatestline  
  5.  
  6. $  
  7.  

 

Perl进程启动函数名 exec

调用语法exec(list);

解说与system类似,区别是启动新进程前结束当前程序。常与fork合用,当fork分成两个
进程后,子进程用exec启动另一个程序。

例子

结果输出

Perl进程启动函数名 syscall

调用语法syscall(list);

解说调用系统Perl进程启动函数名 ,list第一个元素是系统调用名,其余为参数。

如果参数是数字,就转化成C的整型数(typeint)。否则传递字符串的指针。详见UNIX的帮助Perl进程启动函数名 文档。

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

require("syscall.ph");

例子

结果输出

【编辑推荐】

  1. Perl函数手册专家指导
  2. Perl文件句柄概念详解
  3. 解析两大Perl时间函数区别
  4. Perl构造函数用法解析
  5. Perl基础 解析Perl标量和数组概念
THE END