linux系统编程:进程原语

                        进程原语

1. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
2. 进程环境
在libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时要用extern声明。用以下代码可以查看当前进程的所有环境变量的信息。

#include <stdio.h> 
int main(void)
{
    extern char **environ;
    int i;
    for(i = 0; environ[i] != NULL;  i++)
    printf("%s\n", environ[i]);
    return 0;
}

运行结果用键值对的形式展示环境变量的信息。几个常见的环境变量解释:
PATH:可执行文件的搜索路径。
SHELL:当前使用的shell。
HOME:当前用户的主目录路径。
3. 进程状态
4种主要的进程状态:运行、就绪、挂起、终止。
4. 进程原语
在liunx中使用函数fork创建新的进程。

#include <unistd.h>
pid_t fork(void);

函数特点:调用一次,返回两次。
在父进程中,返回创建的子进程的pid;在子进程中返回0;出错,返回-1。
一个创建子进程的实例:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void sys_err(char *s)
{
    perror(s);
    exit(1);
}
int main(void)
{
    pid_t pid;
    pid = fork();
    if (pid < 0)
        sys_err("fork");
    else if (pid > 0)
    {
        /* parent process */
        printf("I am parent,my pid is %d, my parent pid is %d\n", getpid(), getppid());
        sleep(1);   //休眠1秒,防止父进程过早退出
    }
    else
  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值