修改程序名(程序在ps top 中的顯示)

2021-06-21 05:24:06 字數 958 閱讀 2508

偶爾看到一段**,是修改程序名的,覺得不對,遂網上查之。結果如下:

每乙個c程式都有個main函式,作為程式啟動入口函式。main函式的原型是int main(int argc , char *argv);其中argc表示命令行引數的個數;argv是乙個指標陣列,儲存所有命令列字串。linux程序名稱是通過命令列引數argv[0]來表示的。

linux 還有環境變數引數資訊,表示程序執行需要的所有環境變數資訊。通過全域性變數

char **environ;可以訪問環境變數。

命令列引數argv和環境變數資訊environ是在一塊連續的記憶體中表示的,並且environ緊跟在argv後面

。如下圖:

#include #include int main(int argc , char *argv)

return 0;

}

執行結果:

修改程序名稱,只需要修改原本argv引數所使用的區域即可。但是以後想通過argv引用引數是不可能的了,需要在這之前做好資料的複製儲存。

#include #include int main(int argc, char *argv)

if(argv_last - p < size)

memcpy(p, name, size);

p += strlen(name);

if(argv_last - p > 0)

*(argv_last - 1) = 0;

while(1) sleep(1);

return 0;

}

執行結果:

修改程序訪問許可權

openprocesstoken 要對乙個任意程序 包括系統安全程序和服務程序 進行指定了寫相關的訪問權的open process操作,只要當前程序具有sededebug許可權就可以了。要是乙個使用者是administrator或 是被給予了相應的許可權,就可以具有該許可權。可是,就算我們用admi...

在linux中通過程序名獲得程序id

當需要kil乙個程序時,需要提供乙個pid 使用kill命令 或提供乙個程序名 使用pkill命令 pkill是如何通過程序名得到程序id的?在linux中程序是通過檔案來表示的,資訊都儲存在 proc pid目錄中。在 proc pid status檔案的第一行,儲存有程序名,和使用者輸入的進行比...

Linux修改程序優先順序

一 程序優先順序簡介 linux作業系統是乙個多使用者 多工的作業系統,linux系統中通常執行著非常多的程序。但是cpu在同乙個時鐘週期內只能運算乙個指令。程序優先順序決定了每個程序處理先後順序。二 示例 三 修改ni值時注意事項 四 nice命令 nice 選項 命令 nice命令可以給新執行的...