美文网首页
12.进程的映像更新

12.进程的映像更新

作者: 陈忠俊 | 来源:发表于2020-04-12 16:05 被阅读0次

1.读取系统的环境变量

#include<stdio.h>
#include<unistd.h>
extern char **environ; //变量的声明,只是作用域的扩充

int main(void){
    int i;
    for(i = 0; environ[i] != NULL; i++)
        printf("%s\n", environ[i]);
}
#include<stdio.h>
#include<unistd.h>
//extern char **environ; //变量的声明,只是作用域的扩充

int main(int argc, char *argv[], char *exevp[]){
    int i;
    for(i = 0; exevp[1] != NULL; i++)
        printf("%s\n", exevp[i]);
    return 0;
}

调用exec*执行映像的更新

#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<stdlib.h>


int main(void){
    char *ps_argv[] = {"ps", "-o", "pid,ppid,pgrp,comm", NULL};
    pid_t pid = fork();
    if(pid == -1) return -1;
    if(pid == 0){
        printf("child process... %d\n", getpid());
        //更新进程的映像
        //execl("/bin/ps", "ps", "-o", "pid, ppid, pgrp, comm", NULL);
        execvp("ps", ps_argv);
        //只有当exec函数家族的函数执行失败,才执行以下代码
        perror("execlp");
        exit(0);
    }
    else {
        wait(NULL);
    }
    return 0;
}
#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<stdlib.h>
extern char **environ;

int main(void){
    char *ps_envp[] = {"name=eclipse", "location=shanghai", NULL};
    pid_t pid = fork();
    if(pid == -1) return -1;
    if(pid == 0){
        printf("child process... %d\n", getpid());
        //更新进程的映像
        //execl("/bin/ps", "ps", "-o", "pid, ppid, pgrp, comm", NULL);
        execle("./execl", execl, NULL, ps_envp);
        //只有当exec函数家族的函数执行失败,才执行以下代码
        perror("execlp");
        exit(0);
    }
    else {
        wait(NULL);
    }
    return 0;
}

相关文章

  • 12.进程的映像更新

    1.读取系统的环境变量 调用exec*执行映像的更新

  • 2.4、进程映像

    在linux中,进程映像可以在/proc/$pid/map看到代码段、堆、共享库、栈等的地址范围 1、程序时报存在...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • Windows强制结束进程

    一、查看&显示进程 二、结束进程 命令说明:1、/im 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任...

  • 进程的定义、组成、组织方式、特征

    为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体(进程映像)的概念。 进程的定义: 进程是程序的一次...

  • os——第四章 线程

    4.1进程和线程 资源所有权:指的是进程拥有进程映像(代码,数据,栈,属性),资源的所有权 调度/执行:一个进程沿...

  • JVM jmap dump 分析dump文件 / 如何使用Ecl

    jhat简介 把本机的java内存映像导出到heap.dmp中,其中PID为java进程的ID号。 导出后的映像文...

  • Linux系统编程(四) ------ 进程间通信

    进程是设计和分析操作系统的有力工具。然而不同的进程之间.即使是具有家族联系的父子进程.都具有各自不同的进程映像。由...

  • 12.管理进程

    XII. 管理进程 后台管理任务当作一次性进程运行 进程构成(process formation)是指用来处理应用...

  • JVM堆内存分析-jmap

    1.查询某个进程堆内存映像文件情况举例(jmap [PID]): jmap 83573image.png 2.查询...

网友评论

      本文标题:12.进程的映像更新

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