System call ubuntu

Admin và mọi người giúp mình với, mình đang muốn viết system call cho linux với nhiệm vụ thống kê các tiến trình đang chạy trên hdh, nhưng mình chưa biết bắt đầu thế nào, làm sao để lấy được thông tin về tiến trình qua code. Cảm ơn mn.

chắc cái này bạn làm rồi
nhưng nếu bạn chưa làm thì link tham khảo đây : https://www.cyberciti.biz/faq/show-all-running-processes-in-linux/

1 Like

Có sẵn luôn rồi nè: using “for_each_process” in proc entry

Mấu chốt là macro for_each_process trong linux/sched/signal.h:

#include <linux/sched/signal.h>

struct task_list *task;
for_each_process(task) {
  ...
}

Lúc đầu cứ tưởng nó expose macro này ra userspace cho dùng thoải mái, compile hoài không được :sweat:. Chỉ dùng được trong kernel.

Hoặc có thể dùng libproc để parse, cách nó hoạt động là list nội dung /proc.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?