Tôi đang triển khai syscall được gọi trong không gian người dùng, cho phép nói bằng foo. Syscall truy cập task_struct của foo (thông qua con trỏ toàn cục), in tên và pid của nó, sau đó tiếp tục quá trình cha mẹ của foo, cha mẹ của foo, vv. In tất cả tên và pids của họ lên và bao gồm cả quá trình init.Các id quá trình không âm trong Linux phải không?
Pid = 1 được dành riêng cho init, pid = 0 được dành riêng cho trình chuyển đổi.
Theo task_struct của trình swapper, đó là quy trình gốc của chính nó.
Swapper (hoặc lịch biểu) luôn có pid = 0 và luôn là quy trình cha mẹ của init?
Tất cả các pids đều không âm? Tôi có thể giả định điều đó không?
Cảm ơn tôi sẽ kiểm tra ngay lập tức cách xác định pid_t. – Plazo
Tôi nghĩ rằng nó được ký, 'fork' trả về' pid_t' có thể là '-1'. Ngoài ra tôi nghĩ rằng tôi nhớ nhìn thấy nó trong một số tiêu đề. Cần kiểm tra. Ofc, điều này không có nghĩa là id quá trình có thể là số âm –
Nó đã được ký, chỉ cần nhìn vào nó. Nhưng nó là như vậy để trở về lỗi: D –