美文网首页
四、进程操作

四、进程操作

作者: zhile_doing | 来源:发表于2018-08-30 14:38 被阅读0次
  1. 创建、结束进程
    创建进程使用fork系统调用,结束进程使用exit。理解fork调用的意义,理解vfork调用的意义
    #include<stdio.h>
    #include<fcntl.h>
    #include<sys/uio.h>
    #include<sys/stat.h>
    #include<sys/types.h>
    #include<unistd.h>
    #include<string.h>
    #include<sys/wait.h>
    #include<stdlib.h>
    int main(){
        pid_t chpid;
        int fd;
        char buf[50];
        int status;
        if((fd=open("temp", O_CREAT | O_RDWR | O_TRUNC, 0664)) == -1){
            perror("创建文件:");
            return 1;
        }
        if((chpid = fork() == 0)){
            puts("子进程正在运行\n");
            strcpy(buf, "子进程数据!");
            printf("子进程pid:%d\n", getpid());
            printf("父进程pid:%d\n", getppid());
            write(fd, buf, strlen(buf));
            close(fd);
            exit(0);
        }else{
            puts("父进程正在运行!\n");
            strcpy(buf, "父进程数据!");
            printf("子进程pid:%d\n", chpid);
            printf("父进程pid:%d\n", getpid());
            write(fd, buf, strlen(buf));
            close(fd);
        } 
        wait(&status);
        return 0;
    }
    
  2. 进程的执行、等待、同步
    进程中执行其他可执行程序时可用exec,等待其他进程执行完毕使用wait,进程间同步使用信号量,互斥量等,进程睡眠使用sleep
    #include<unistd.h>
    #include<stdio.h>
    extern char **environ;
    int main(int argc, char* argv[]){
        puts("输出执行参数:\n");
        for(int i = 0; i < argc; i++){
            printf("参数%d:%s\n", i, argv[i]);
        }
        puts("输出环境变量:\n");
        for(int i = 0;environ[i] != NULL; i++){
            printf("%s\n", environ[i]);
        }
        return 0;
    }
    
    #include<unistd.h>
    #include<stdio.h>
    extern char **environ;
    int main(int argc, char* argv[]){
        puts("first information\n");
        fflush(stdout);
        execve("beexec", argv, environ);
        puts("information two!");
        return 0;
    }
    
  3. 进程信息获取
    理解getuid,getgid,getpid,getppid调用的作用,以及chdir,chroot,nice

相关文章

  • 四、进程操作

    创建、结束进程创建进程使用fork系统调用,结束进程使用exit。理解fork调用的意义,理解vfork调用的意义...

  • Android进程

    优先级从高到低分为四种:前台进程,可视进程,服务进程,缓存进程。 前台进程:用户当前正在操作的。 1.屏幕顶层运行...

  • 五、python多进程与多线程。

    进程进程的概念是需要理解的,进程是操作系统中正在运行的一个程序实例,操作系统通过进程操作原语来对其进行调度。操作系...

  • linux API记录

    文件内容操作 进程操作

  • 进程操作

    一、进程创建 进程树 父进程创建若干子进程,子进程再创建其子进程,依次类推,构成进程树。进程的调度,其实就是在进程...

  • 进程操作

    关闭进程 psto show them all. and type:kill -9 PID_of_process

  • Android 进程介绍

    Android进程,是各个组件(四大组件)运行的容器,进一步讲,组件将运行在进程中的线程里。然而,操作系统是以进程...

  • LInux-基本指令

    1.基本文件和目录的操作 2.系统,进程,网络 系统操作 进程操作 网络操作 3.其他工具 日期

  • 进程和线程的理解

    进程:对于操作系统而言,进程是整个现代操作系统的核心根本,操作系统是以进程为单位执行任务。 线程:随着技术的发展,...

  • 43.进程和线程和事件循环

    操作系统-进程-线程 线程和进程是操作系统中的两个概念: 进程(process):计算机已经运行的程序,是操作系统...

网友评论

      本文标题:四、进程操作

      本文链接:https://www.haomeiwen.com/subject/ndorwftx.html