Hãy xem xét đoạn mã này:làm thế nào để thoát khỏi một quá trình con - _exit() vs lối
pid_t cpid = fork();
if (cpid == -1) {
perror("fork");
exit(EXIT_FAILURE);
}
if (cpid == 0) { // in child
execvp(argv[1], argv + 1);
perror("execvp");
_exit(EXIT_FAILURE);
}
// in parent
Làm thế nào tôi sẽ thoát khỏi quá trình con nếu lợi nhuận execvp? Tôi có nên sử dụng exit() hoặc _exit() không?
+1 Bạn muốn quá trình con không thành công thoát ra lặng lẽ như thể nó chưa bao giờ được tạo ra. –
Cũng vì chuẩn C cũ cho phép trình liên kết giải quyết phân biệt chữ hoa chữ thường _Exit() không thể là hàm thư viện chuẩn vì nó sẽ xung đột với _exit() cũ hơn. Lấy làm tiếc. – Joshua
Ngược lại. _Exit (3) là thư viện C chuẩn (ISO C99). _exit (2) là một cuộc gọi hệ thống POSIX.1 và không phải là một tiêu chuẩn C. –