[問題] 請教fork/exec關於memory release
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
請教各位 假設我要在linux底下執行CreateProcess的動作
如底下程式碼所示
如果fork產生的child process在exec之前還是跑從
parent process拷貝而來的程式碼
exec之後就跑要執行的程式了
child process應該也有new了一份char array
那為何child process不需要delete[] p呢?
我這個char array是要傳給exec的參數(把p_sArg/p_sEnv做處理然後傳送)
在底下的example就省略parser argument的部分
只用個p示意而已
感謝各位先進的指導
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
example:
void CreateProcess(char* p_sAppName, char* p_sArg, char* p_sEnv)
{
char *p = new char[10];
int pid = fork();
......
......
if (pid == 0)
{
exec(...);
}
else if (pid > 0)
{
waitpid(pid , 0, 0);
}
else
{
printf("error");
}
delete[] p;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.38.175 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1602669844.A.CAF.html
推
10/14 19:09,
4年前
, 1F
10/14 19:09, 1F
→
10/14 19:09,
4年前
, 2F
10/14 19:09, 2F
感謝說明
※ 編輯: Keitaro (223.137.137.101 臺灣), 10/14/2020 20:02:04
※ 編輯: Keitaro (223.137.137.101 臺灣), 10/14/2020 20:03:09
推
10/15 10:34,
4年前
, 3F
10/15 10:34, 3F
→
10/15 10:34,
4年前
, 4F
10/15 10:34, 4F
→
10/15 10:34,
4年前
, 5F
10/15 10:34, 5F
→
10/15 10:35,
4年前
, 6F
10/15 10:35, 6F
推
10/15 10:48,
4年前
, 7F
10/15 10:48, 7F
→
10/15 10:48,
4年前
, 8F
10/15 10:48, 8F
→
10/15 10:49,
4年前
, 9F
10/15 10:49, 9F
瞭解了 非常感謝以上幾位版友
※ 編輯: Keitaro (60.251.156.103 臺灣), 10/15/2020 13:11:24
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章