我想知道 shell 里的 if, while 等语句是怎么实现的
时间:2011-05-08
来源:互联网
1 #include <unistd.h>
2 #include <stdio.h>
3 #include<stdlib.h>
4 int glob=6;
5 char buf[]="a write to stdout\n";
6 int main(void)
7 {
8 int var;
9 pid_t pid;
10 var=88;
11 if(write(STDOUT_FILENO,buf,sizeof(buf)-1) !=sizeof(buf)-1)
12 { printf("write error");}
13 printf("before fork\n");
14 if (pid=fork()<0){
15 printf("fork error");}
16 if (0==pid){
17 glob++;
18 var++;
19 }
20 sleep(2);
21 printf("pid=%d,golb=%d,var=%d\n",getpid(),glob,var);
22 exit(0);
23 }
24
administrator@ubuntu:~/gaoji$ ./a.out
a write to stdout
before fork
pid=2559,golb=7,var=89
pid=2558,golb=7,var=89
administrator@ubuntu:~/gaoji$
我想知道为什么,这里父进程,和子进程共用变量的内存空间的!!
这是APUE里面的题!!!
2 #include <stdio.h>
3 #include<stdlib.h>
4 int glob=6;
5 char buf[]="a write to stdout\n";
6 int main(void)
7 {
8 int var;
9 pid_t pid;
10 var=88;
11 if(write(STDOUT_FILENO,buf,sizeof(buf)-1) !=sizeof(buf)-1)
12 { printf("write error");}
13 printf("before fork\n");
14 if (pid=fork()<0){
15 printf("fork error");}
16 if (0==pid){
17 glob++;
18 var++;
19 }
20 sleep(2);
21 printf("pid=%d,golb=%d,var=%d\n",getpid(),glob,var);
22 exit(0);
23 }
24
administrator@ubuntu:~/gaoji$ ./a.out
a write to stdout
before fork
pid=2559,golb=7,var=89
pid=2558,golb=7,var=89
administrator@ubuntu:~/gaoji$
我想知道为什么,这里父进程,和子进程共用变量的内存空间的!!
这是APUE里面的题!!!
作者: 儒家辉少 发布时间: 2011-05-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28