青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-145  評論-173  文章-70  trackbacks-0
在Linux下面,編寫類似的資源管理器,需要讀取proc下面的很多文件,為此,搜尋了下面的資料,以利于學習和保存!
總之,可以使用命令來讀取cat /proc/pid/stat(讀取進程信息…………)

=============================================================================

/proc 是一個偽文件系統, 被用作內核數據結構的接口, 而不僅僅是解釋說明 /dev/kmem. /proc里的大多數文件都是只讀的, 但也可以通過寫一些文件來改變內核變量.

下面對整個 /proc 目錄作一個大略的介紹.

[number]
在 /proc 目錄里, 每個正在運行的進程都有一個以該進程 ID 命名的子目錄, 其下包括如下的目錄和偽文件.

cmdline
該文件保存了進程的完整命令行. 如果該進程已經被交換出內存, 或者該進程已經僵死, 那么就沒有任何東西在該文件里, 這時候對該文件的讀操作將返回零個字符. 該文件以空字符 null 而不是換行符作為結束標志.
cwd
一個符號連接, 指向進程當前的工作目錄. 例如, 要找出進程 20 的 cwd, 你可以:
cd /proc/20/cwd; /bin/pwd

請注意 pwd 命令通常是 shell 內置的, 在這樣的情況下可能工作得不是很好.

environ
該文件保存進程的環境變量, 各項之間以空字符分隔, 結尾也可能是一個空字符. 因此, 如果要輸出進程 1 的環境變量, 你應該:
(cat /proc/1/environ; echo) | tr ";\000"; ";\n";

(至于為什么想要這么做, 請參閱 lilo(8).)

exe
也是一個符號連接, 指向被執行的二進制代碼.

在 Linux 2.0 或者更早的版本下, 對 exe 特殊文件的 readlink(2) 返回一個如下格式的字符串:

[設備號]:節點號

舉個例子, [0301]:1502 就是某設備的 1502 節點, 該設備的主設備號為 03 (如 IDE, MFM 等驅動器), 從設備號為 01 (第一個驅動器的第一分區).

而在 Linux 2.2 下, readlink(2) 則給出命令的實際路徑名.

另外, 該符號連接也可以正常析引用(試圖打開 exe 文件實際上將打開一個可執行文件). 你甚至可以鍵入 /proc/[number]/exe 來運行 [number] 進程的副本.

帶 -inum 選項的 find(1) 命令可以定位該文件.

fd
進程所打開的每個文件都有一個符號連接在該子目錄里, 以文件描述符命名, 這個名字實際上是指向真正的文件的符號連接,(和 exe 記錄一樣).例如, 0 是標準輸入, 1 是標準輸出, 2 是標準錯誤, 等等.

程序有時可能想要讀取一個文件卻不想要標準輸入,或者想寫到一個文件卻不想將輸出送到標準輸出去,那么就可以很有效地用如下的辦法騙過(假定 -i 是輸入文件的標志, 而 -o 是輸出文件的標志):
foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...
這樣就是一個能運轉的過濾器. 請注意該方法不能用來在文件里搜索, 這是因為 fd 目錄里的文件是不可搜索的.

在 UNIX 類的系統下, /proc/self/fd/N 基本上就與 /dev/fd/N 相同. 實際上, 大多數的 Linux MAKEDEV 腳本都將 /dev/fd 符號連接到 [..]/proc/self/fd 上.

maps
該文件包含當前的映象內存區及他們的訪問許可.

格式如下: address perms offset dev inode 00000000-0002f000 r-x-- 00000400 03:03 1401 0002f000-00032000 rwx-p 0002f400 03:03 1401 00032000-0005b000 rwx-p 00000000 00:00 0 60000000-60098000 rwx-p 00000400 03:03 215 60098000-600c7000 rwx-p 00000000 00:00 0 bfffa000-c0000000 rwx-p 00000000 00:00 0

address 是進程所占據的地址空間, perms 是權限集: r = read w = write x = execute s = shared p = private (copy on write)

offset 是文件或者別的什么的偏移量, dev 是設備號(主設備號:從設備號), 而 inode 則是設備的節點號. 0 表明沒有節點與內存相對應, 就象 bss 的情形.

在 Linux 2.2 下還增加了一個域給可用的路徑名.

mem
該文件并不是 mem (1:1) 設備, 盡管它們有相同的設備號. /dev/mem 設備是做任何地址轉換之前的物理內存, 而這里的 mem 文件是訪問它的進程的內存.目前這個 mem 還不能 mmap(2) (內存映射)出去,而且可能一直要等到內核中增加了一個通用的 mmap(2) 以后才能實現. (也許在你讀本手冊頁時這一切已經發生了)
mmap
mmap(2) 做的 maps 映射目錄,是和 exe, fd/* 等類似的符號連接. 請注意 maps 包含了比 /proc/*/mmap 更多的信息, 所以應該廢棄 mmap.

";0"; 通常指 libc.so.4.

在 linux 內核 1.1.40 里, /proc/*/mmap 被取消了. (現在是 真的 廢棄不用了!)

root
依靠系統調用 chroot(2), unix 和 linux 可以讓每個進程有各自的文件系統根目錄. 由 chroot(2) 系統調用設置.根指向文件系統的根,性質就象 exe, fd/* 等一樣.
stat
進程狀態信息, 被命令 ps(1) 使用.

現將該文件里各域, 以及他們的 scanf(3)格式說明符, 按順序分述如下:


pid %d
進程標識.
comm %s
可執行文件的文件名, 包括路徑. 該文件是否可見取決于該文件是否已被交換出內存.
state %c
";RSDZT"; 中的一個, R 是正在運行, S 是在可中斷的就緒態中睡眠, D 是在不可中斷的等待或交換態中睡眠, Z 是僵死, T 是被跟蹤或被停止(由于收到信號).
ppid %d
父進程 PID.
pgrp %d
進程的進程組 ID.
session %d
進程的會話 ID.
tty %d
進程所使用終端.
tpgid %d
當前擁有該進程所連接終端的進程所在的進程組 ID.
flags %u
進程標志. 目前每個標志都設了數學位, 所以輸出里就不包括該位. crt0.s 檢查數學仿真這可能是一個臭蟲, 因為不是每個進程都是用 c 編譯的程序. 數學位應該是十進制的 4, 而跟蹤位應該是十進制的 10.
minflt %u
進程所導致的小錯誤(minor faults)數目, 這樣的小錯誤(minor faults)不需要從磁盤重新載入一個內存頁.
cminflt %u
進程及其子進程所導致的小錯誤(minor faults)數目.
majflt %u
進程所導致的大錯誤(major faults)數目, 這樣的大錯誤(major faults)需要重新載入內存頁.
cmajflt %u
進程及其子進程所導致的大錯誤(major faults)數目.
utime %d
進程被調度進用戶態的時間(以 jiffy 為單位, 1 jiffy=1/100 秒,另外不同硬件體系略有不同).
stime %d
進程被調度進內核態的時間, 以 jiffy 為單位.
cutime %d
進程及其子進程被調度進用戶態的時間, 以 jiffy 為單位.
cstime %d
進程及其子進程被調度進內核態的時間, 以 jiffy 為單位.
counter %d
如果進程不是當前正在運行的進程, 就是進程在下個時間片當前可以擁有的最大時間, 以 jiffy 為單位. 如果進程是當前正在運行的進程, 就是當前時間片中所剩下 jiffy 數目.
priority %d
標準優先數只再加上 15, 在內核里該值總是正的.
timeout %u
當前至進程的下一次間歇時間, 以 jiffy 為單位.
itrealvalue %u
由于計時間隔導致的下一個 SIGALRM 發送進程的時延,以 jiffy 為單位.
starttime %d
進程自系統啟動以來的開始時間, 以 jiffy 為單位.
vsize %u
虛擬內存大小.
rss %u
Resident Set Size(駐留大小): 進程所占用的真實內存大小, 以頁為單位, 為便于管理而減去了 3. rss 只包括正文, 數據以及堆棧的空間, 但不包括尚未要求裝入內存的或已被交換出去的.
rlim %u
當前進程的 rss 限制, 以字節為單位, 通常為 2,147,483,647.
startcode %u
正文部分地址下限.
endcode %u
正文部分地址上限.
startstack %u
堆棧開始地址.
kstkesp %u
esp(32 位堆棧指針) 的當前值, 與在進程的內核堆棧頁得到的一致.
kstkeip %u
EIP(32 位指令指針)的當前值.
signal %d
待處理信號的 bitmap(通常為 0).
blocked %d
被阻塞信號的 bitmap(對 shell 通常是 0, 2).
sigignore %d
被忽略信號的 bitmap.
sigcatch %d
被俘獲信號的 bitmap.
wchan %u
進程在其中等待的通道, 實際是一個系統調用的地址. 如果你需要文本格式的, 也可以在名字列表中找到. (如果有最新版本的 /etc/psdatabase, 你可以在 ps -l 的結果中的 WCHAN 域看到)
cpuinfo
保存了CPU 以及體系架構依賴條目的列表. 對于不同的系統架構有不同的列表, 共有的兩項是 cpuBogoMIPS, cpu 可能是當前在用的 CPU, 而 BogoMIPS 則是內核初始化時計算出的一個系統常數.
devices
主設備號及設備組的列表, 文本格式. MAKEDEV 腳本使用該文件來維持內核的一致性.
dma
一個列表, 指出正在使用的ISA DMA (直接內存訪問)通道.
filesystems
以文本格式列出了被編譯進內核的文件系統. 當沒有給 mount(1) 指明哪個文件系統的時候, mount(1) 就依靠該文件遍歷不同的文件系統.
interrupts
該文件以 ASCII 格式記錄了(至少是在 i386 體系上的)每次 IRQ 的中斷數目.
ioports
該文件列出了當前在用的已注冊 I/O 端口范圍.
kcore
該偽文件以 core 文件格式給出了系統的物理內存映象, 再利用未卸載的內核 (/usr/src/linux/tools/zSystem), 我們就可以用 GDB 查探當前內核的任意數據結構.

該文件的總長度是物理內存 (RAM) 的大小再加上 4KB.

kmsg
可以用該文件取代系統調用 syslog(2) 來記錄內核信息. 但是讀該文件需要超級用戶權限, 并且一次只能有一個進程可以讀該文件, 因而如果一個使用了 syslog(2) 系統調用功能來記錄內核信息的系統日志進程正在運行的話, 別的進程就不能再去讀該偽文件了.

該文件的內容可以用 dmesg(8) 來察看.

ksyms
該文件保存了內核輸出的

posted on 2010-03-08 22:40 deercoder 閱讀(1405) 評論(0)  編輯 收藏 引用 所屬分類: Linux/Unix
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品黄色在线观看| 久久裸体艺术| 久久亚洲精品视频| 久久久国产精彩视频美女艺术照福利| 午夜精品免费| 欧美永久精品| 老司机午夜精品视频在线观看| 美女国产一区| 最新日韩欧美| 亚洲看片一区| 亚洲综合成人婷婷小说| 久久av老司机精品网站导航| 久久精品国产在热久久| 欧美激情视频给我| 欧美视频在线不卡| 国产亚洲视频在线| 亚洲精品乱码久久久久久蜜桃91 | 一区二区三区四区五区视频| 亚洲最新在线视频| 久久精品国产亚洲一区二区| 欧美激情免费观看| 国内精品久久久| 日韩亚洲一区二区| 午夜在线精品偷拍| 欧美1区2区| 亚洲视频一二区| 老司机午夜精品视频| 国产精品高潮呻吟| 亚洲国产精品成人一区二区| 亚洲一区二区视频| 亚洲高清av| 欧美亚洲三区| 欧美日韩国产一区二区| 黄色成人精品网站| 欧美伊人久久久久久久久影院| 欧美激情区在线播放| 性色av一区二区三区| 久久这里只有| 国产在线精品自拍| 亚洲欧美综合网| 亚洲精品日韩激情在线电影 | 一本色道久久综合亚洲91| 久久久久久欧美| 国产区日韩欧美| 欧美一区二区三区日韩| 一本色道久久| 欧美日韩人人澡狠狠躁视频| 亚洲精品1234| 裸体丰满少妇做受久久99精品| 亚洲男人影院| 国产日韩1区| 欧美一区二区视频在线观看| 99视频精品在线| 欧美日韩亚洲在线| 亚洲一区三区视频在线观看| 亚洲人体一区| 欧美人与禽性xxxxx杂性| 亚洲国产美女精品久久久久∴| 麻豆九一精品爱看视频在线观看免费| 欧美一区二区三区免费在线看| 国产欧美一区二区视频| 久久精品国产一区二区三区| 久久www免费人成看片高清| 国产视频久久网| 久久综合色婷婷| 老**午夜毛片一区二区三区| 亚洲国内自拍| 亚洲国产小视频| 欧美日韩国产免费| 中日韩午夜理伦电影免费| 99精品99久久久久久宅男| 欧美三级黄美女| 欧美影视一区| 久久综合99re88久久爱| avtt综合网| 小黄鸭精品密入口导航| 在线免费一区三区| 亚洲精品免费在线播放| 欧美日韩日本网| 久久久精品2019中文字幕神马| 免费av成人在线| 欧美激情国产精品| 欧美一级理论片| 久久综合成人精品亚洲另类欧美 | 一区二区三区|亚洲午夜| 亚洲最新在线视频| 国内精品视频在线观看| 亚洲激情综合| 国产欧美精品| 亚洲国产精品久久久| 久久在线免费| 欧美日韩中文字幕在线| 久久在线免费观看| 欧美男人的天堂| 久久精品72免费观看| 欧美电影免费观看大全| 性欧美8khd高清极品| 美女免费视频一区| 香蕉乱码成人久久天堂爱免费| 久久精品一二三区| 亚洲综合国产激情另类一区| 久久精品国产精品亚洲| 夜夜嗨av一区二区三区| 久久精品二区亚洲w码| 一区二区三区回区在观看免费视频| 亚洲欧美在线aaa| 亚洲另类黄色| 久久久国产一区二区三区| 亚洲图色在线| 蜜臀av性久久久久蜜臀aⅴ| 午夜精品亚洲一区二区三区嫩草| 久久综合九色综合久99| 欧美在线观看一区| 欧美三级视频在线观看| 亚洲国产精品999| 国产在线观看一区| 一区二区冒白浆视频| 亚洲激情在线激情| 久久精品国产在热久久| 欧美一二三视频| 欧美日韩午夜激情| 亚洲国产日韩欧美一区二区三区| 国内揄拍国内精品少妇国语| 亚洲欧美国产日韩天堂区| 亚洲色图综合久久| 欧美日本不卡视频| 亚洲国产三级| 亚洲成人直播| 久久av一区二区三区| 欧美亚洲日本网站| 国产精品嫩草影院av蜜臀| 日韩视频在线一区二区| 亚洲人成网站影音先锋播放| 欧美成人有码| 亚洲精品乱码| 亚洲性视频h| 国产精品夜色7777狼人 | 亚洲欧美国产高清va在线播| 亚洲欧美在线视频观看| 欧美日韩精品免费看| 99天天综合性| 性18欧美另类| 国产又爽又黄的激情精品视频| 午夜日韩电影| 亚洲高清资源| 麻豆精品视频| 亚洲第一区中文99精品| 最新亚洲视频| 欧美精品日韩| 亚洲小视频在线| 久久av红桃一区二区小说| 国产性做久久久久久| 久久久久国产一区二区三区四区| 另类图片国产| 夜夜夜久久久| 国产精品免费一区二区三区在线观看| 亚洲一区在线直播| 久久夜色精品国产噜噜av| 最新国产拍偷乱拍精品| 欧美日韩国产色视频| 欧美一区二区三区喷汁尤物| 欧美黄在线观看| 亚洲视频第一页| 国产日韩专区在线| 欧美二区不卡| 亚洲一区二区三区四区视频| 欧美专区福利在线| 亚洲精品欧美一区二区三区| 欧美色123| 久久精品在这里| 日韩亚洲一区二区| 久久综合网色—综合色88| 一本色道久久精品| 国产亚洲一区精品| 欧美成人精品激情在线观看| 在线亚洲欧美| 欧美mv日韩mv国产网站app| 一区二区三区视频在线| 狠狠色综合网站久久久久久久| 欧美激情第五页| 久久成人精品无人区| 夜久久久久久| 欧美成人精品一区二区| 午夜视频在线观看一区二区三区| 亚洲国产日韩欧美在线图片 | 欧美精品久久99| 欧美一级淫片aaaaaaa视频| 亚洲精品久久久久久久久久久久久| 欧美主播一区二区三区美女 久久精品人| 亚洲国产另类 国产精品国产免费| 欧美午夜一区二区| 欧美黄色精品| 久久久久久伊人| 亚洲综合国产激情另类一区| 亚洲靠逼com| 亚洲精选一区二区| 亚洲国内精品在线| 亚洲成人资源| 欧美a级片网| 美女视频黄 久久|