免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 884 | 回复: 1
打印 上一主题 下一主题

[SCO UNIX] 刚学习UNIX有几个问题不懂 提问!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-28 15:42 |只看该作者 |倒序浏览
编写一程序,实现在程序运行时通过系统调用fork( )创建两个(或两个以上)子进程,使父、子三进程并行,并利用nice ( ) 改变各进程的优先级,观察不同情况下进程调度效果的区别。
while (TRUE) {                                        /* repeat forever */
    type_prompt( );                                /* display prompt */
    read_command (command, parameters)                /* input from terminal */
  
if (fork() != 0) {                                        /* fork off child process */
    /* Parent code */
    waitpid( -1, &status, 0);                                /* wait for child to exit */
} else {
    /* Child code */
    execve (command, parameters, 0);                /* execute command */
}

&&&在以上的基础上,对父、子进程分别作如下安排:父进程建立一管道pipe文件,父子共同在此pipe文件上操作,子进程负责向该pipe文件写信息,父进程则从中读信息并输出到屏幕上。

int pipe(int fd[2])   将创建一个管道和两个文件描述符:fd[0], fd[1]。   其中fd[0] 文件描述符将用于读操作,而fd[1] 文件描述符将用于写操作。  pipe()的成功返回值是0,如果创建失败将返回-1并将失败原因记录在errno中。   使用int pipe(int fd[2])创建管道的标准编程模式如下:   1) 创建管道;   2) 使用fork( )方法创建两个(或多个)相关联的进程;   3) 使用read()和write()方法操作管道;   4) 管道使用完毕后用close(int fd)方法关闭管道。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-12-28 15:54 |只看该作者

刚学习UNIX有几个问题不懂 提问!!!

楼主是在讲课,不是在提问呀。呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP