system() 調用失敗 (如無法 fork、shell 不存在)WEXITSTATUS 宏提取)int ret = system("TASKKILL /F /IM text.exe");
if (ret == -1) {
perror("system call failed");
/* 處理系統級錯誤 */
} else if (WEXITSTATUS(ret) != 0) {
fprintf(stderr, "Command exited with code %d\n", WEXITSTATUS(ret));
/* 處理命令邏輯失敗 */
}
❌ 直接判斷
ret != 0視為失敗 — 忽略了命令正常返回非 0 碼的情況 (如grep未匹配返回 1)
system() 返回 cmd.exe 的退出碼<sys/wait.h> 宏解析