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

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

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

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

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

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

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

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

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

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

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

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

[設備號]:節(jié)點號

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

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

另外, 該符號連接也可以正常析引用(試圖打開 exe 文件實際上將打開一個可執(zhí)行文件). 你甚至可以鍵入 /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 類的系統(tǒng)下, /proc/self/fd/N 基本上就與 /dev/fd/N 相同. 實際上, 大多數(shù)的 Linux MAKEDEV 腳本都將 /dev/fd 符號連接到 [..]/proc/self/fd 上.

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

格式如下: 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 是進程所占據(jù)的地址空間, perms 是權限集: r = read w = write x = execute s = shared p = private (copy on write)

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

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

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

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

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

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

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


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

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

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

該文件的內容可以用 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>
            国产欧美一区二区精品秋霞影院| 欧美在线观看天堂一区二区三区| 一本久久精品一区二区| 亚洲综合日韩中文字幕v在线| 欧美成人a视频| 伊人久久大香线| 久久精品99国产精品日本| 9久re热视频在线精品| 欧美激情第9页| 亚洲精品国产无天堂网2021| 毛片一区二区三区| 欧美在线观看一区| 国产午夜亚洲精品羞羞网站| 午夜日韩电影| 午夜久久影院| 国产三级精品三级| 久久国产日本精品| 久久都是精品| 久久综合狠狠综合久久综合88| 欧美视频一区在线观看| 久久久午夜视频| 国产精品九色蝌蚪自拍| 999亚洲国产精| 欧美刺激性大交免费视频| 性色一区二区三区| 国产精品综合视频| 午夜精品网站| 亚洲欧美日韩另类| 国产一区二区成人| 久久久水蜜桃av免费网站| 亚洲欧美国产毛片在线| 国产精品永久免费在线| 久久香蕉精品| 欧美电影在线播放| 亚洲性夜色噜噜噜7777| 亚洲一区二区三区在线视频| 国产欧美日本一区二区三区| 久久久亚洲欧洲日产国码αv| 久久精品视频亚洲| 亚洲丰满少妇videoshd| 亚洲精品国产精品久久清纯直播 | 欧美与欧洲交xxxx免费观看 | 中日韩午夜理伦电影免费| 夜色激情一区二区| 国产日韩欧美一区二区三区在线观看| 久久精品国产第一区二区三区最新章节| 午夜在线精品偷拍| 亚洲人成7777| 亚洲影视中文字幕| 91久久精品国产91性色tv| 宅男66日本亚洲欧美视频| 激情视频亚洲| 99精品黄色片免费大全| 国产一区二区三区在线观看网站| 麻豆av福利av久久av| 欧美日韩精品是欧美日韩精品| 欧美一区二区日韩| 欧美黄色一区二区| 久久天堂精品| 欧美午夜激情在线| 嫩草影视亚洲| 国产精品中文在线| 亚洲精品国产无天堂网2021| 国产欧美综合在线| 在线一区二区三区四区| 亚洲黄色在线观看| 欧美一区二区三区免费大片| 99riav1国产精品视频| 性做久久久久久| 亚洲视频在线观看| 欧美大片免费看| 在线精品视频一区二区| 校园春色综合网| 欧美激情一区二区三区成人| 久久久久久久久一区二区| 欧美日韩国产成人在线91| 久久综合一区二区| 国产日产高清欧美一区二区三区| 亚洲精品一区在线观看| 在线成人中文字幕| 亚洲午夜伦理| 亚洲私拍自拍| 欧美精品日日鲁夜夜添| 欧美国产乱视频| 国产一区二区av| 午夜精品一区二区三区电影天堂| 亚洲一区二区三区激情| 欧美日本一区二区视频在线观看| 免费观看一区| 影音先锋在线一区| 久久精品国产亚洲5555| 久久精品2019中文字幕| 国产精品一区二区三区久久久| 一本一本久久a久久精品综合麻豆| 亚洲毛片一区| 欧美日韩色一区| 日韩一区二区电影网| 一区二区三区视频在线观看| 欧美日本久久| 亚洲天堂网在线观看| 亚洲欧美日韩国产| 国产精品久久久久9999吃药| 亚洲视频一区二区免费在线观看| 亚洲一区二区三区精品在线观看 | 久久国产精品亚洲77777| 亚洲欧美日韩精品久久久久| 国产精品午夜久久| 性感少妇一区| 美女露胸一区二区三区| 亚洲高清在线精品| 欧美国产丝袜视频| 99精品热视频只有精品10| 亚洲网站在线| 国产一区二区三区在线免费观看 | 久久欧美中文字幕| 黄色精品在线看| 久久精品噜噜噜成人av农村| 久久夜色精品国产| 最新日韩欧美| 欧美久久久久久久| 亚洲欧美日本国产专区一区| 久久婷婷丁香| 亚洲理论在线观看| 国产精品久久国产愉拍| 欧美在线视频播放| 亚洲国产视频直播| 亚洲综合不卡| 一区二区三区在线视频观看| 欧美了一区在线观看| 午夜视频一区在线观看| 欧美成人午夜激情| 亚洲欧美日韩国产中文在线| 美女免费视频一区| 亚洲综合日韩在线| 狠狠干综合网| 欧美日韩国产精品成人| 亚洲综合色丁香婷婷六月图片| 可以免费看不卡的av网站| 一区二区电影免费在线观看| 国产香蕉久久精品综合网| 欧美韩日视频| 欧美一区免费视频| 日韩视频免费看| 久久亚洲二区| 亚洲伊人一本大道中文字幕| 尤物网精品视频| 国产精品免费视频观看| 欧美波霸影院| 久久精品1区| 正在播放欧美一区| 亚洲国产欧美在线人成| 久久国产精品一区二区三区四区 | 国产一区二区高清| 欧美日韩国产精品一区二区亚洲 | 亚洲日本理论电影| 国产主播一区| 国产精品视区| 欧美日韩一区二区在线观看视频 | 国产精品区二区三区日本 | 亚洲国产高清一区| 国产毛片精品视频| 欧美色123| 欧美日韩成人一区| 麻豆精品在线播放| 久久大综合网| 久久都是精品| 久久久九九九九| 欧美一区中文字幕| 午夜精品99久久免费| 亚洲天堂激情| 亚洲小视频在线观看| 一区二区高清| 一区二区三区.www| 一区二区三区不卡视频在线观看 | 亚洲美女网站| 亚洲精品看片| 亚洲精品五月天| 亚洲欧洲日韩在线| 亚洲国产另类精品专区| 亚洲国产日韩欧美综合久久| 欧美激情国产高清| 亚洲福利专区| 亚洲精品国产无天堂网2021| 亚洲精品欧美日韩| a91a精品视频在线观看| 在线亚洲高清视频| 午夜精品一区二区在线观看 | 国产女主播一区二区三区| 国产精品欧美日韩| 国产视频精品免费播放| 国内揄拍国内精品久久 | 亚洲国产精品嫩草影院| 欧美激情一区二区三区成人| 羞羞视频在线观看欧美| 国产一区二区高清| 在线成人小视频| 亚洲精品免费观看| 亚洲一区二区伦理| 香蕉国产精品偷在线观看不卡| 久久国产欧美精品|