Perl进程启动函数用法解析

开发 架构
上节我们介绍了Perl函数中的Perl进程控制函数的用法,这里向大家分享一下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标量和数组概念
责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-19 14:20:57

Perl函数

2010-07-15 15:54:10

Perl守护进程

2010-07-19 14:13:41

Perl函数

2010-07-16 16:56:01

Perl构造函数

2010-07-19 14:45:07

Perl进程控制函数

2010-07-16 17:04:38

Perl方法

2010-07-15 13:50:16

Perl目录操作函数

2010-07-19 10:01:57

Perl函数

2010-07-23 15:59:33

Perl encode

2010-07-13 13:49:43

Perl foreac

2010-07-15 12:51:17

Perl多进程

2010-07-16 13:10:36

Perl哈希表

2010-07-14 15:32:21

Perl转义字符

2010-07-21 13:59:59

Perl引用

2010-07-19 15:01:26

Perl数学函数

2010-07-20 09:45:04

Perl继承

2010-07-15 10:22:23

Perl控制结构

2010-07-16 08:47:53

Perl if语句

2010-07-20 15:02:20

Perl数组

2010-07-23 13:53:33

Perl grep函数
点赞
收藏

51CTO技术栈公众号