malloc() 받은 메모리와 fork()에 대해서.
글쓴이: cnyld / 작성시간: 월, 2005/02/21 - 6:12오후
한 task가 malloc()으로 메모리를 할당 받아서
link list로 관리 하고 있습니다.
좀 이따가, 그 list에서 node를 하나 빼고,
fork()를 했습니다.
이제 free를 해야겠는데,
parent에서 free해야 합니까? child에서 free해야합니까?
아님 둘다 해줘야 하나요?
int get_and_run_todo() { struct _sipc_upman_ *todo; // malloc 받는 구조체 todo = get_upman_list(); // linked list에서 하나 빼옴. if( todo == NULL ) continue; if( ( childpid = fork() ) < 0 ) { // fork error... syslog(LOG_CRIT, "fork error %m"); } else { if( childpid == 0 ) // This is child { upman_child_run( todo->server_ip, todo->protocol); // 요 data들을 사용해서 child가 작업함. /** 여기에서 child가 free할까요? **/ exit( 0 ); // End of child } else { // this is parent /** 여기에서 parent가 free할까요? **/ } } } }
Forums:
둘다 입니다. 부모프로세스와 자식 프로세스 사이에 같은 것은 Source
둘다 입니다. 부모프로세스와 자식 프로세스 사이에 같은 것은 Source Code밖에 없습니다.
남으로 창을 내겠소.
밭이 한참갈이 괭이로 파고 호미론 김을 메지요.
구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오.
강냉이가 익거든 와자셔도 좋소.
왜 사냐건 웃지요.
댓글 달기