亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1876 | 回復: 7
打印 上一主題 下一主題

網(wǎng)上看到一程序,有一點不明白,求教 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-17 23:10 |只看該作者 |倒序瀏覽
本帖最后由 nevermore4030 于 2012-03-17 23:11 編輯

  1 #include <stdio.h>
  2 #include <sys/types.h>
  3 #include <unistd.h>
  4
  5 int main()
  6 {
  7         int i=0;
  8         pid_t pid;
  9         printf("還沒創(chuàng)建子進程\n");
10         i++;
11         pid = vfork();
12         if(pid==-1)
13         {
14         printf("fork error!\n");
15         }
16         else if(pid==0)
17         {
18         i++;
19         printf("我是子進程,id%d\n",getpid());
20         printf("我的父親是id:%d\n",getppid());
21         printf("-----i=%d-----\n",i);
22         }
23         else
24         {
25         i++;
26         printf("我是父進程,id:%d\n",getpid());
27         printf("-----i=%d-----\n",i);
28         }
29         exit(0);
30 }
31
最后那個exit(0);換成return 0;怎么就是個段錯誤,為什么父進程的i不可以訪問了。

論壇徽章:
1
白羊座
日期:2013-09-18 22:02:26
2 [報告]
發(fā)表于 2012-03-18 11:06 |只看該作者
看不出啊。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-03-18 12:34 |只看該作者
man vfork

論壇徽章:
1
辰龍
日期:2014-05-22 11:38:58
4 [報告]
發(fā)表于 2012-03-18 16:21 |只看該作者
本帖最后由 winway1988 于 2012-03-18 16:21 編輯

man vfork里有這么一句話
The child must not return from the current function  or  call exit(), but may call _exit().

論壇徽章:
0
5 [報告]
發(fā)表于 2012-03-18 17:30 |只看該作者
其實我很想問為什么。不過它就這么寫,我就這么用吧。謝謝大家了。

論壇徽章:
0
6 [報告]
發(fā)表于 2012-03-18 17:37 |只看該作者
好像是因為子進程在父進程的棧幀上操作,如果子進程return了或者exit了可能會破壞父進程的棧幀

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
7 [報告]
發(fā)表于 2012-03-18 18:30 |只看該作者
回復 6# luckysir


    re ,就是這個原因

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報告]
發(fā)表于 2012-03-18 18:47 |只看該作者
nevermore4030 發(fā)表于 2012-03-18 17:30
其實我很想問為什么。不過它就這么寫,我就這么用吧。謝謝大家了。


頂樓的程序(包括將 exit(0); 改為 return 0; 的程序)其行為是未定義的,它可以段錯誤,也可以不段錯誤,或是一會出現(xiàn)段錯誤一會不出現(xiàn),或是出現(xiàn)其它錯誤,沒有什麼為什麼可言。看看 vfork(2) 和 http://en.wikipedia.org/wiki/Undefined_behavior
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP