Linux 进程复制与替换

Linux 进程复制与替换

1、printf 函数输出问题
printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满
足,才会输出到屏幕。
1) 缓冲区满
2) 强制刷新缓冲区 fflush
3) 程序结束时

#include <stdio.h>
 #include <stdlib.h>
#include <unistd.h>
 int main(int argc, char* argv[],char* envp[])
 {
 printf("hello");
 //fflush(stdout);
 sleep(3);
 exit(0);
 }

2、主函数参数介绍
int main( int argc, char* argv[], char* envp[])
(1) argc 参数个数
(2) argv 参数内容
(3) envp 环境变量

 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
 #include <assert.h>

 //       参数个数       参数内容      环境变量
int main(int argc, char* argv[],char* envp[])
{
     int i = 0;
     printf("argc=%d\n",argc);

     for( ;i < argc; i++ )
     {
         printf("argv[%d]=%s\n",i,argv[i]);
     }

     for( i = 0; envp[i] != NULL; i++ )
     {
        printf("envp[%d]=%s\n",i,envp[i]);
     }
     exit(0);
}

3、复制进程 fork
3.1 fork 方法
pid_t fork(void);
函数返回类型 pid_t 实质是 int 类型,Linux 内核 2.4.0 版本的定义是:
fork 函数会新生成一个进程,调用 fork 函数的进程为父进程,新生成的进程为子进程。
在父进程中返回子进程的 pid,在子进程中返回 0,失败返回-1。
要注意的几个问题:
1) 父子进程并发运行的理解
2) 逻辑地址 物理地址
3) 写时拷贝技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值