unix 环境高级编程-1.6-程序和进程

1.6、程序和进程

  1. 程序:存放在磁盘上,处于某个目录中的可执行文件。使用6个exec函数中的一个由内核将程序读入存储器,并使之执行。
  2. 进程和进程id:程序的执行被称为进程(process)。unix确保每个进程都有一个唯一的数字标识符。称为进程ID。进程id总是非负数。

看如下例子:pro_1-4.c

#include "apue.h" int main(void) { printf("hello world from process ID %d\n",getpid); exit(0); }


编译:gcc -o pro_1-4 pro_1-4.c

运行:./pro_1-4

结果:

3.进程控制:有三个用于进程控制的主要函数:fork,exec,和waitpid。(exec有六种变体);

示例:程序pro_1-5.c

#include "apue.h" #include <sys/wait.h> int main(void) { char buf[MAXLINE]; pid_t pid; int status; printf("%%");//print prompt while(fgets(buf,MAXLINE,stdin)!=NULL){ if(buf[strlen(buf)-1]=='\n') buf[strlen(buf)-1]=0; if((pid=fork())<0) { err_sys("fork error"); }else if(pid=0){ execlp(buf,buf,(char*)0); err_ret("couldn't execute:%",buf); exit(127); } if((pid=waitpid(pid,&status,0))<0) err_sys("waitpid error"); printf("%%"); } exit(0); }

运行结果:

程序解释:

  • 函数fgets从标准一行行的读,一终止符结束,fgets返回一个null指针,循环终止,进程终止。
  • fgets是以换行符终止,后随一个null字节,所以用strlen计算长度。二execlp要求一null换行。
  • fork创建一个新进程。新进程是调用进程的复制品,调用进程是父进程。新创建的为子进程。fork像父进程返回进程ID,子进程则返回0,以内fork创建一新进程。所以说,他被调用一次,但返回两次。

4.线程和线程ID

通常,一个进程只有一个控制线程。同一时刻只执行一组机器指令。对于某些问题,如果不同部分,个使用一个控制线程。那么整个问题解决起来就容易多了。

在一个进程内所有线程,共享一个地址空间,文件描述符,栈以及进程相关的属,因为,他们能访问同意存储区,所以个线程在访问共享数据的同时,需要采取同步措施,避免数据不一致性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值