linux實現系統呼叫列印程序資訊

2021-07-09 04:18:14 字數 815 閱讀 5135

在linux中,通過系統呼叫實現列印出當前程序pid,執行狀態等資訊,以及父程序的簡單資訊。若對系統呼叫過程不了解,可以檢視我的部落格

在linux中,程序資訊存在task_struct結構體中,若對此不了解,可以參考我的部落格

或者了解詳細資訊。

首先,需要建立核心呼叫檔案sys_myprocess.c:

#include

#include

#include

#include

struct task_struct *pcurrent;

struct task_struct *task;

asmlinkage int sys_myprocess(void)

;*/int i=

0;for(task=current->

parent;task!=&init_task;task=task->

parent)

printk(kern_info "end by linfeng!\n");

return

1;}

編寫測試程式test_myprocess.c:

#include

#include

#include

#define __nr_myprocess 300

int main(int argc,char *argv)

ok,編譯執行得以下結果:

Linux系統程序呼叫列表

fork 建立乙個新程序 clone 按指定條件建立子程序 execve 執行可執行檔案 exit 中止程序 exit 立即中止當前程序 getdtablesize 程序所能開啟的最大檔案數 getpgid 獲取指定程序組標識號 setpgid 設定指定程序組標誌號 getpgrp 獲取當前程序組標...

linux下使用系統呼叫實現程序後台執行

其實很簡單,就是把 if fork 0 else 結構中的else去掉就可以了 下面是乙個示例 include include include include include include include int main int argc,char argv printf process is ...

Linux系統呼叫 程序的終止

之前介紹了linux的系統建立,主要是fork 函式和vfork 函式,現在再看看linux程序的終止,主要的呼叫是 exit 和exit 先看看兩個函式的原型以及各自屬於的標頭檔案,可以發現這兩個方法的區別 exit 函式 include void exit int status 從 exit 的...