亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

關于進程exit后,內存釋放釋放的實踐

2024-06-28 13:28:07
字體:
來源:轉載
供稿:網友
關于進程exit后,內存釋放釋放的實踐

最近碰到一個問題,或許也是小猿們都會碰到的問題:內存泄露。

都知道malloc后需要free才能釋放內存,shmat后需要shmdt才能斷掉內存區并使用ipC_RMID命令刪除共享內存。那么如果是當前進程exit后,這些東西還需要收到清理嗎?進程退出會清理除打開的文件描述符外,還做些什么呢?

代碼:

思路:在進程中申請內存空間不釋放,進程退出,查看當期是否有內存釋放

 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <unistd.h> 5 #include <errno.h> 6 #include <signal.h> 7 #include <sys/ipc.h> 8 #include <sys/shm.h> 9 10 //在進程中申請內存空間不釋放,進程退出,查看當期是否有內存釋放11 12 #define MALLOC_SIZE 1024*10013 14 15 void ChildPRocess()16 {17     char *p = NULL;18 19     p = (char *)malloc(MALLOC_SIZE);//100k20 21     if(!p)22     {23         printf("error to malloc   %s/n",strerror(errno));24     }25 26     memset(p,0,MALLOC_SIZE);27     p[0] = 'M';28     printf("=======%p     %c======/n",p,p[0]);29 30 31     p = NULL;32 33     int shmid = shmget(IPC_PRIVATE,MALLOC_SIZE,IPC_CREAT|SHM_R|SHM_W);34 35     p = shmat(shmid,NULL,0);36 37     memset(p,0,MALLOC_SIZE);38     p[0] = 'S';39     printf("###########%p        %c###########/n",p,p[0]);40 41     exit(0);42 }43 44 45 int main(void)46 {47     int i = 0;48     int ret = 0;49     signal(SIGCLD, SIG_IGN);50     while(++i < 100)51     {52         ret = fork();53 54         if(ret == 0)//child55         {56             ChildProcess();57         }58         else if(ret > 0 )//father59         {60             printf("i have create %d proceses !!/n",i);61             sleep(1);62         }63         else64         {65             printf("error to create process   %s /n",strerror(errno));66         }67     }68 69 70 71     return 0;72 }

編譯運行結果:

[root@localhost UtilLibs]# gcc -o test_leak_memory test_leak_memory.c [root@localhost UtilLibs]# ./test_leak_memory                         i have create 1 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 2 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 3 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 4 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 5 proceses !!i have create 6 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 7 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 8 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 9 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 10 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 11 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 12 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 13 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 14 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 15 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 16 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########i have create 17 proceses !!=======0x16c0010     M======###########0x7fb9547db000               S###########

同時,通過ps aux | grep test,得到PID,用命令pmap查看該進程內存使用情況:

[root@localhost ~]# pmap 4349243492:   ./test_leak_memory0000000000400000      4K r-x--  /mnt/hgfs/e/Lessons/MyExercise/UtilLibs/test_leak_memory0000000000600000      4K rw---  /mnt/hgfs/e/Lessons/MyExercise/UtilLibs/test_leak_memory000000317c800000    136K r-x--  /lib64/ld-2.14.90.so000000317ca21000      4K r----  /lib64/ld-2.14.90.so000000317ca22000      4K rw---  /lib64/ld-2.14.90.so000000317ca23000      4K rw---    [ anon ]000000317cc00000   1716K r-x--  /lib64/libc-2.14.90.so000000317cdad000   2048K -----  /lib64/libc-2.14.90.so000000317cfad000     16K r----  /lib64/libc-2.14.90.so000000317cfb1000      8K rw---  /lib64/libc-2.14.90.so000000317cfb3000     20K rw---    [ anon ]00007fd69545d000     12K rw---    [ anon ]00007fd695475000      8K rw---    [ anon ]00007fffcaf8d000    132K rw---    [ stack ]00007fffcafff000      4K r-x--    [ anon ]ffffffffff600000      4K r-x--    [ anon ] total             4124K

結果:

1. 進程退出后,下一個進程重新申請的地址和上一個進程中申請的地址是相同的,也就是說應該是從堆上同一塊區域分配使用的。

2. pmap顯示,進程的total消耗是不變的。

那么,結論是否可以定為:在多進程編程中,如果子進程主動調用了exit來終止自己,那么該子進程中手動申請的內存就不需要再手動釋放啦。歡迎大家交流討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品久久久久| 亚洲欧洲国产一区| 欧美一级高清免费播放| 精品爽片免费看久久| 日韩精品视频免费在线观看| 久久久国产精彩视频美女艺术照福利| 亚洲欧洲一区二区三区在线观看| 亚洲国产天堂网精品网站| 亚洲精品日韩av| 亚洲激情久久久| 亚洲新中文字幕| 日韩国产精品亚洲а∨天堂免| 国产精品久久久久久久久久久新郎| 成人免费激情视频| 久久精品91久久香蕉加勒比| 久久躁日日躁aaaaxxxx| 欧美黄色片在线观看| 正在播放欧美视频| 亚洲欧洲在线播放| 日韩免费电影在线观看| 国产亚洲精品综合一区91| 欲色天天网综合久久| 亚洲国产精品va在线看黑人动漫| 欧美在线视频导航| 欧美日韩国产一区二区| 欧美第一页在线| 欧美大片大片在线播放| 亚洲二区中文字幕| 欧美日韩一二三四五区| 久久久久久久久久久久久久久久久久av| 亚洲精品国产综合区久久久久久久| 久久久综合免费视频| 国产精品视频yy9099| 亚洲国产成人精品女人久久久| 日韩国产欧美精品一区二区三区| 国产视频一区在线| 成人a级免费视频| 性欧美长视频免费观看不卡| 日韩中文综合网| 亚洲自拍偷拍第一页| 午夜精品一区二区三区在线播放| 精品国产欧美一区二区五十路| 国产精品久久久久秋霞鲁丝| 国产精品久久久999| 欧美激情视频播放| 欧美日韩在线视频一区| 欧美性xxxx极品高清hd直播| 日韩欧美极品在线观看| 2019亚洲男人天堂| 久久韩剧网电视剧| 久久久黄色av| 欧洲成人免费视频| 国产精品久久视频| 精品久久久久久久久久久久| 国产精品黄页免费高清在线观看| 日韩在线www| 亚洲经典中文字幕| 亚洲成人精品视频在线观看| 日韩精品视频在线播放| 久久免费视频在线| 国产精品久久久久福利| 国产精品久久久久久一区二区| 欧美成人剧情片在线观看| 亚洲欧美999| 日本a级片电影一区二区| 国产精品老女人精品视频| 国产精品视频999| 日本精品免费观看| 国产在线观看一区二区三区| 国产精品久久久久国产a级| 国产一区二区色| 亚洲丁香久久久| 国产日韩欧美在线观看| 91精品啪在线观看麻豆免费| 亚洲日本成人女熟在线观看| 亚洲精品国产精品国自产观看浪潮| 91高清视频在线免费观看| 国语自产在线不卡| 中文字幕精品www乱入免费视频| 国产日韩中文在线| 韩曰欧美视频免费观看| 成人女保姆的销魂服务| 中文字幕一精品亚洲无线一区| 91免费福利视频| 性欧美xxxx| 久久综合九色九九| 影音先锋欧美在线资源| 欧美激情精品久久久久| 国产精品2018| 亚洲精品成人免费| 91亚洲va在线va天堂va国| 成人精品视频99在线观看免费| 91亚洲va在线va天堂va国| 欧美第一黄网免费网站| 中文字幕日韩av综合精品| 欧美亚洲成人xxx| 亚洲精品国产拍免费91在线| 国产精品精品国产| www.国产精品一二区| 成人乱色短篇合集| 久久久国产精品免费| 国产一区二区三区在线视频| 色一情一乱一区二区| 欧美色视频日本高清在线观看| 萌白酱国产一区二区| 国产91精品不卡视频| 日韩精品有码在线观看| 久久久在线视频| 久久艹在线视频| 91久久夜色精品国产网站| www.欧美精品一二三区| 精品福利视频导航| 国产精品va在线播放| 亚洲欧美国产一区二区三区| 国产精品91久久| 国产成人亚洲综合91精品| 久久影视电视剧凤归四时歌| 55夜色66夜色国产精品视频| 久久久免费在线观看| 日韩精品在线观看一区二区| 日本在线精品视频| 日韩欧美黄色动漫| 欧美午夜精品久久久久久久| 久久影视电视剧免费网站清宫辞电视| 久久久人成影片一区二区三区| 91深夜福利视频| 国产精品久久久久不卡| 日韩中文字幕在线视频播放| 亚洲国产精品资源| 91精品久久久久久久久不口人| 国产精品久久久久久搜索| 亚洲日韩中文字幕在线播放| 国产精品天天狠天天看| 欧美最猛性xxxxx(亚洲精品)| 欧美一级高清免费| 欧美大片免费观看在线观看网站推荐| 日韩成人网免费视频| 国产精品日日做人人爱| 精品女同一区二区三区在线播放| 欧美亚洲在线视频| 国产亚洲欧美日韩一区二区| 中文字幕精品av| 久久久久成人网| 一本色道久久综合狠狠躁篇的优点| 亚洲欧美日韩精品| 国产精品美女久久久久久免费| 亚洲国产高清自拍| 亚洲精品视频久久| 91大神福利视频在线| 欧洲成人在线观看| 黑人与娇小精品av专区| 日韩av免费在线观看| 国内精品久久久久久中文字幕| 久久久久久网站| 亚洲二区在线播放视频| 日本精品免费观看| 色噜噜狠狠色综合网图区| 久久影视电视剧凤归四时歌| 成人性生交大片免费看小说| 在线视频欧美性高潮| 欧美日韩激情小视频| 91精品视频免费看| 国产精品久久久久久亚洲影视| 亚洲国产成人久久综合一区|