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

隨筆-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>
            久久免费国产精品1| 欧美日韩成人精品| 欧美成人高清| 国产欧美日韩精品a在线观看| 亚洲激情影视| 噜噜噜噜噜久久久久久91 | 久久人体大胆视频| 国产一本一道久久香蕉| 午夜欧美精品| 亚洲婷婷国产精品电影人久久| 欧美精品高清视频| 亚洲精一区二区三区| 欧美福利在线| 免费成人激情视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久久久一区二区| 精品成人久久| 欧美 日韩 国产在线| 久久综合中文字幕| 亚洲精品123区| 最新国产乱人伦偷精品免费网站 | 亚洲免费av电影| 久久国产99| 午夜天堂精品久久久久 | 欧美二区不卡| 欧美承认网站| 亚洲视屏在线播放| 亚洲视频在线看| 国产一区视频在线观看免费| 久久免费黄色| 美女国产精品| 中日韩男男gay无套| 亚洲欧美日韩国产另类专区| 国产日韩专区在线| 免费永久网站黄欧美| 欧美v国产在线一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 亚洲美女中文字幕| 亚洲人成啪啪网站| 国产精品久久久久三级| 久久久久九九视频| 欧美激情视频免费观看| 亚洲欧美一区二区精品久久久| 香蕉乱码成人久久天堂爱免费 | 久久成人亚洲| 免费在线看一区| 亚洲欧美日韩中文视频| 欧美中文字幕视频| 亚洲国产日韩欧美一区二区三区| 日韩一级成人av| 国内精品久久久久久久果冻传媒| 91久久精品日日躁夜夜躁国产| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲国产一区二区三区在线播| 99视频在线观看一区三区| 国产午夜精品久久久久久免费视| 欧美激情偷拍| 国产欧美日韩视频一区二区| 亚洲成色777777女色窝| 国产精品手机视频| 亚洲欧洲三级电影| 永久免费视频成人| 在线亚洲精品| 亚洲精品一区二区在线观看| 午夜精品美女久久久久av福利| 91久久久久久国产精品| 欧美一区二区三区视频免费| 亚洲欧美日韩精品综合在线观看| 亚洲精品一区二区三区四区高清| 欧美影院精品一区| 亚洲自拍偷拍网址| 欧美电影在线观看完整版| 久久先锋资源| 国产精品一二三四| 一区二区三区三区在线| 日韩网站在线看片你懂的| 久久午夜色播影院免费高清| 欧美在线影院在线视频| 欧美日韩亚洲一区二区三区在线观看| 另类图片综合电影| 国内精品免费在线观看| 午夜精品一区二区在线观看| 亚洲一区二区三区影院| 欧美日韩精品免费观看| 91久久中文字幕| 亚洲国产视频一区二区| 久久欧美肥婆一二区| 久久久午夜视频| 国产人妖伪娘一区91| 亚洲综合精品| 欧美一进一出视频| 国产精品午夜在线观看| 亚洲影院在线观看| 亚洲精品一区在线观看| 欧美a级在线| 国内精品写真在线观看| 久久成人免费视频| 久久精品成人| 国产一区二区三区在线观看网站| 亚洲一区二区三区中文字幕在线| 亚洲一区二区三区777| 欧美私人啪啪vps| 亚洲视频高清| 欧美伊人久久| 国内自拍一区| 久久久久久久久久久成人| 男女精品网站| 日韩网站在线| 国产精品高潮粉嫩av| 亚洲与欧洲av电影| 久久国产色av| 亚洲高清色综合| 欧美精品福利| 亚洲综合好骚| 免费观看成人www动漫视频| 亚洲黄色尤物视频| 欧美日韩影院| 欧美在线观看视频| 欧美激情亚洲视频| 亚洲综合丁香| 精品成人一区二区三区| 欧美激情精品久久久久久蜜臀| 99国内精品| 久久人人九九| 中文国产成人精品久久一| 欧美大片免费久久精品三p | 久久综合九色综合网站| 亚洲精品自在在线观看| 午夜精品婷婷| 亚洲国产日韩一级| 国产精品久久91| 六月婷婷久久| 亚洲一区二区三区在线看| 另类春色校园亚洲| 亚洲午夜久久久久久久久电影院| 国精品一区二区三区| 欧美剧在线免费观看网站| 午夜精品影院| 宅男在线国产精品| 欧美成人在线免费观看| 亚洲小视频在线观看| 一色屋精品视频在线看| 国产精品久久久久久久久久久久久 | 久久久久久有精品国产| 日韩视频在线观看免费| 久久色在线观看| 亚洲一区国产精品| 亚洲电影在线免费观看| 欧美日韩激情网| 久久aⅴ国产紧身牛仔裤| 99国产一区| 欧美激情精品久久久六区热门 | 欧美 亚欧 日韩视频在线| 最新日韩av| 麻豆精品视频在线观看| 午夜精品一区二区三区在线播放 | 中文亚洲免费| 亚洲精品综合| 亚洲福利在线视频| 国产在线乱码一区二区三区| 欧美系列精品| 欧美日韩成人综合在线一区二区| 久久嫩草精品久久久久| 欧美在线视频免费播放| 亚洲一区二区免费视频| 亚洲精品小视频在线观看| 欧美激情第1页| 免费中文字幕日韩欧美| 久热国产精品视频| 久久久综合视频| 久久精品视频99| 久久久久久久成人| 久久精品一区二区三区四区| 久久国产精品72免费观看| 午夜视频在线观看一区二区三区 | 欧美**人妖| 亚洲第一精品福利| 亚洲国产精品第一区二区三区| 欧美freesex交免费视频| 久久一二三四| 久久夜色精品一区| 欧美成年人视频网站欧美| 蜜桃久久av一区| 久久综合电影| 美女视频黄 久久| 久久综合伊人| 亚洲国产高清aⅴ视频| 亚洲国产精品久久91精品| 亚洲国产精品va| 亚洲精品黄色| 一区二区免费在线观看| 亚洲影院色无极综合| 小黄鸭精品密入口导航| 久久www成人_看片免费不卡| 久久漫画官网| 欧美黄色aa电影| 国产精品第2页| 国产在线国偷精品产拍免费yy| 在线精品观看| 一区二区三区不卡视频在线观看|