锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美综合国产精品一区,亚洲欧美一区二区激情,一本大道久久a久久精品综合
http://m.shnenglu.com/bujiwu/category/9219.htmlzh-cn Thu, 29 Apr 2010 16:39:51 GMT Thu, 29 Apr 2010 16:39:51 GMT 60 [杞澆]top鍛戒護璇﹁В http://m.shnenglu.com/bujiwu/archive/2010/04/27/top.htmlbujiwu bujiwu Tue, 27 Apr 2010 05:26:00 GMT http://m.shnenglu.com/bujiwu/archive/2010/04/27/top.html http://m.shnenglu.com/bujiwu/comments/113700.html http://m.shnenglu.com/bujiwu/archive/2010/04/27/top.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/113700.html http://m.shnenglu.com/bujiwu/services/trackbacks/113700.html http://blog.chinaunix.net/u/12973/showart_637900.html top鍛戒護鏄疞inux涓嬪父鐢ㄧ殑鎬ц兘鍒嗘瀽宸ュ叿錛岃兘澶熷疄鏃舵樉紺虹郴緇熶腑鍚勪釜榪涚▼鐨勮祫婧愬崰鐢ㄧ姸鍐碉紝綾諱技浜嶹indows鐨勪換鍔$鐞嗗櫒銆備笅闈㈣緇嗕粙緇嶅畠鐨勪嬌鐢ㄦ柟娉曘?
top - 01:06:48 up 1:22, 1 user, load average: 0.06,
0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0
zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa,
0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free,
22052k buffers
Swap: 192772k total, 0k used, 192772k free,
123988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM
TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3
0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72
top
1 root 16 0 1992 632 544 S 0.0 0.3
0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0
0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0
0:00.00 watchdog/0
緇熻淇℃伅鍖?/h4>
鍓嶄簲琛屾槸緋葷粺鏁翠綋鐨勭粺璁′俊鎭傜涓琛屾槸浠誨姟闃熷垪淇℃伅錛屽悓 uptime 鍛戒護鐨勬墽琛岀粨鏋溿傚叾鍐呭濡備笅錛?/p>
01:06:48
褰撳墠鏃墮棿
up 1:22
緋葷粺榪愯鏃墮棿錛屾牸寮忎負鏃?鍒?/td>
1 user
褰撳墠鐧誨綍鐢ㄦ埛鏁?/td>
load average: 0.06, 0.60, 0.48
緋葷粺璐熻澆錛屽嵆浠誨姟闃熷垪鐨勫鉤鍧囬暱搴︺?br>
涓変釜鏁板煎垎鍒負 1鍒嗛挓銆?鍒嗛挓銆?5鍒嗛挓鍓嶅埌鐜板湪鐨勫鉤鍧囧箋?/td>
絎簩銆佷笁琛屼負榪涚▼鍜孋PU鐨勪俊鎭傚綋鏈夊涓狢PU鏃訛紝榪欎簺鍐呭鍙兘浼氳秴榪囦袱琛屻傚唴瀹瑰涓嬶細
Tasks: 29 total
榪涚▼鎬繪暟
1 running
姝e湪榪愯鐨勮繘紼嬫暟
28 sleeping
鐫$湢鐨勮繘紼嬫暟
0 stopped
鍋滄鐨勮繘紼嬫暟
0 zombie
鍍靛案榪涚▼鏁?/td>
Cpu(s): 0.3% us
鐢ㄦ埛絀洪棿鍗犵敤CPU鐧懼垎姣?/td>
1.0% sy
鍐呮牳絀洪棿鍗犵敤CPU鐧懼垎姣?/td>
0.0% ni
鐢ㄦ埛榪涚▼絀洪棿鍐呮敼鍙樿繃浼樺厛綰х殑榪涚▼鍗犵敤CPU鐧懼垎姣?/td>
98.7% id
絀洪棽CPU鐧懼垎姣?/td>
0.0% wa
絳夊緟杈撳叆杈撳嚭鐨凜PU鏃墮棿鐧懼垎姣?/td>
0.0% hi
0.0% si
鏈鍚庝袱琛屼負鍐呭瓨淇℃伅銆傚唴瀹瑰涓嬶細
Mem: 191272k total
鐗╃悊鍐呭瓨鎬婚噺
173656k used
浣跨敤鐨勭墿鐞嗗唴瀛樻婚噺
17616k free
絀洪棽鍐呭瓨鎬婚噺
22052k buffers
鐢ㄤ綔鍐呮牳緙撳瓨鐨勫唴瀛橀噺
Swap: 192772k total
浜ゆ崲鍖烘婚噺
0k used
浣跨敤鐨勪氦鎹㈠尯鎬婚噺
192772k free
絀洪棽浜ゆ崲鍖烘婚噺
123988k cached
緙撳啿鐨勪氦鎹㈠尯鎬婚噺銆?br>
鍐呭瓨涓殑鍐呭琚崲鍑哄埌浜ゆ崲鍖猴紝鑰屽悗鍙堣鎹㈠叆鍒板唴瀛橈紝浣嗕嬌鐢ㄨ繃鐨勪氦鎹㈠尯灝氭湭琚鐩栵紝
璇ユ暟鍊煎嵆涓鴻繖浜?strong>鍐呭宸插瓨鍦ㄤ簬鍐呭瓨涓?/strong>鐨勪氦鎹㈠尯鐨勫ぇ灝忋?br>
鐩稿簲鐨勫唴瀛樺啀嬈¤鎹㈠嚭鏃跺彲涓嶅繀鍐嶅浜ゆ崲鍖哄啓鍏ャ?/td>
榪涚▼淇℃伅鍖?/h4>
緇熻淇℃伅鍖哄煙鐨勪笅鏂規樉紺轟簡鍚勪釜榪涚▼鐨勮緇嗕俊鎭傞鍏堟潵璁よ瘑涓涓嬪悇鍒楃殑鍚箟銆?/p>
搴忓彿
鍒楀悕
鍚箟
a
PID
榪涚▼id
b
PPID
鐖惰繘紼媔d
c
RUSER
Real user name
d
UID
榪涚▼鎵鏈夎呯殑鐢ㄦ埛id
e
USER
榪涚▼鎵鏈夎呯殑鐢ㄦ埛鍚?/td>
f
GROUP
榪涚▼鎵鏈夎呯殑緇勫悕
g
TTY
鍚姩榪涚▼鐨勭粓绔悕銆備笉鏄粠緇堢鍚姩鐨勮繘紼嬪垯鏄劇ず涓??
h
PR
浼樺厛綰?/td>
i
NI
nice鍊箋傝礋鍊艱〃紺洪珮浼樺厛綰э紝姝e艱〃紺轟綆浼樺厛綰?/td>
j
P
鏈鍚庝嬌鐢ㄧ殑CPU錛屼粎鍦ㄥCPU鐜涓嬫湁鎰忎箟
k
%CPU
涓婃鏇存柊鍒扮幇鍦ㄧ殑CPU鏃墮棿鍗犵敤鐧懼垎姣?/td>
l
TIME
榪涚▼浣跨敤鐨凜PU鏃墮棿鎬昏錛屽崟浣嶇
m
TIME+
榪涚▼浣跨敤鐨凜PU鏃墮棿鎬昏錛屽崟浣?/100縐?/td>
n
%MEM
榪涚▼浣跨敤鐨?strong>鐗╃悊鍐呭瓨鐧懼垎姣?/td>
o
VIRT
榪涚▼浣跨敤鐨勮櫄鎷熷唴瀛樻婚噺錛屽崟浣峩b銆俈IRT=SWAP+RES
p
SWAP
榪涚▼浣跨敤鐨勮櫄鎷熷唴瀛樹腑錛岃鎹㈠嚭鐨勫ぇ灝忥紝鍗曚綅kb銆?/td>
q
RES
榪涚▼浣跨敤鐨勩佹湭琚崲鍑虹殑鐗╃悊鍐呭瓨澶у皬錛屽崟浣峩b銆俁ES=CODE+DATA
r
CODE
鍙墽琛屼唬鐮佸崰鐢ㄧ殑鐗╃悊 鍐呭瓨澶у皬錛屽崟浣峩b
s
DATA
鍙墽琛屼唬鐮佷互澶栫殑閮ㄥ垎(鏁版嵁孌?鏍?鍗犵敤鐨?strong>鐗╃悊鍐?
瀛樺ぇ灝忥紝鍗曚綅kb
t
SHR
鍏變韓鍐呭瓨澶у皬錛屽崟浣峩b
u
nFLT
欏甸潰閿欒嬈℃暟
v
nDRT
鏈鍚庝竴嬈″啓鍏ュ埌鐜板湪錛岃淇敼榪囩殑欏甸潰鏁般?/td>
w
S
榪涚▼鐘舵併?br>
D =涓嶅彲涓柇鐨勭潯鐪犵姸鎬?br>
R =榪愯
S =鐫$湢
T =璺熻釜/鍋滄
Z =鍍靛案榪涚▼
x
COMMAND
鍛戒護鍚?鍛戒護琛?/td>
y
WCHAN
鑻ヨ榪涚▼鍦ㄧ潯鐪狅紝鍒欐樉紺虹潯鐪犱腑鐨勭郴緇熷嚱鏁板悕
z
Flags
浠誨姟鏍囧織錛屽弬鑰?sched.h
榛樿鎯呭喌涓嬩粎鏄劇ず姣旇緝閲嶈鐨?PID銆乁SER銆丳R銆丯I銆乂IRT銆丷ES銆丼HR銆丼銆?CPU銆?MEM銆乀IME+銆丆OMMAND
鍒椼傚彲浠ラ氳繃涓嬮潰鐨勫揩鎹烽敭鏉ユ洿鏀規樉紺哄唴瀹廣?/p>
鏇存敼鏄劇ず鍐呭
閫氳繃 f 閿彲浠ラ夋嫨鏄劇ず鐨勫唴瀹廣傛寜 f 閿箣鍚庝細鏄劇ず鍒楃殑鍒楄〃錛屾寜 a-z
鍗沖彲鏄劇ず鎴栭殣钘忓搴旂殑鍒楋紝鏈鍚庢寜鍥炶濺閿‘瀹氥?/p>
鎸?o 閿彲浠ユ敼鍙樺垪鐨勬樉紺洪『搴忋傛寜灝忓啓鐨?a-z 鍙互灝嗙浉搴旂殑鍒楀悜鍙崇Щ鍔紝鑰屽ぇ鍐欑殑 A-Z
鍙互灝嗙浉搴旂殑鍒楀悜宸︾Щ鍔ㄣ傛渶鍚庢寜鍥炶濺閿‘瀹氥?/p>
鎸夊ぇ鍐欑殑 F 鎴?O 閿紝鐒跺悗鎸?a-z
鍙互灝嗚繘紼嬫寜鐓х浉搴旂殑鍒楄繘琛屾帓搴忋傝屽ぇ鍐欑殑 R 閿彲浠ュ皢褰撳墠鐨勬帓搴忓掕漿銆?/p>
鍛戒護浣跨敤
1錛?宸ュ叿錛堝懡浠わ級鍚嶇О
top
2錛庡伐鍏鳳紙鍛戒護錛変綔鐢?br>
鏄劇ず緋葷粺褰撳墠鐨勮繘紼嬪拰鍏朵粬鐘跺喌錛?
top鏄竴涓姩鎬佹樉紺鴻繃紼?鍗沖彲浠ラ氳繃鐢ㄦ埛鎸夐敭鏉ヤ笉鏂埛鏂板綋鍓嶇姸鎬?濡傛灉鍦ㄥ墠鍙版墽琛岃鍛戒護,瀹冨皢鐙崰鍓嶅彴,鐩村埌鐢ㄦ埛緇堟璇ョ▼搴忎負姝?
姣旇緝鍑嗙‘鐨勮,top鍛戒護鎻愪緵浜嗗疄鏃剁殑瀵圭郴緇熷鐞嗗櫒鐨勭姸鎬佺洃瑙?瀹冨皢鏄劇ず緋葷粺涓瑿PU鏈“鏁忔劅”鐨勪換鍔″垪琛?璇ュ懡浠ゅ彲浠ユ寜CPU浣跨敤.鍐呭瓨浣跨敤鍜屾墽琛屾椂闂?
瀵逛換鍔¤繘琛屾帓搴忥紱鑰屼笖璇ュ懡浠ょ殑寰堝鐗規ч兘鍙互閫氳繃浜や簰寮忓懡浠ゆ垨鑰呭湪涓漢瀹氬埗鏂囦歡涓繘琛岃瀹?
3錛庣幆澧冭緗?br>
鍦↙inux涓嬩嬌鐢ㄣ?br>
4錛庝嬌鐢ㄦ柟娉?br>
4錛?浣跨敤鏍煎紡
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
4錛?鍙傛暟璇存槑
d 鎸囧畾姣忎袱嬈″睆騫曚俊鎭埛鏂頒箣闂寸殑鏃墮棿闂撮殧銆傚綋鐒剁敤鎴峰彲浠ヤ嬌鐢╯浜や簰鍛戒護鏉ユ敼鍙樹箣銆?br>
p 閫氳繃鎸囧畾鐩戞帶榪涚▼ID鏉ヤ粎浠呯洃鎺ф煇涓繘紼嬬殑鐘舵併?br>
q 璇ラ夐」灝嗕嬌top娌℃湁浠諱綍寤惰繜鐨勮繘琛屽埛鏂般傚鏋滆皟鐢ㄧ▼搴忔湁瓚呯駭鐢ㄦ埛鏉冮檺錛岄偅涔坱op灝嗕互
灝藉彲鑳介珮鐨勪紭鍏堢駭榪愯銆?br>
S 鎸囧畾绱妯″紡
s 浣縯op鍛戒護鍦ㄥ畨鍏ㄦā寮忎腑榪愯銆傝繖灝嗗幓闄や氦浜掑懡浠ゆ墍甯︽潵鐨勬綔鍦ㄥ嵄闄┿?br>
i 浣縯op涓嶆樉紺轟換浣曢棽緗垨鑰呭兊姝昏繘紼嬨?br>
c 鏄劇ず鏁翠釜鍛戒護琛岃屼笉鍙槸鏄劇ず鍛戒護鍚?br>
4.3鍏朵粬
涓嬮潰浠嬬粛鍦╰op鍛戒護鎵ц榪囩▼涓彲浠ヤ嬌鐢ㄧ殑涓浜涗氦浜掑懡浠ゃ備粠浣跨敤瑙掑害鏉ョ湅錛岀啛緇冪殑鎺屾彙榪欎簺鍛戒護姣旀帉鎻¢夐」榪橀噸瑕佷竴浜涖傝繖浜涘懡浠ら兘鏄崟瀛楁瘝鐨勶紝濡傛灉鍦ㄥ懡
浠よ閫夐」涓嬌鐢ㄤ簡s閫夐」錛屽垯鍙兘鍏朵腑涓浜涘懡浠や細琚睆钄芥帀銆?br>
Ctrl+L 鎿﹂櫎騫朵笖閲嶅啓灞忓箷銆?br>
h鎴栬? 鏄劇ず甯姪鐢婚潰錛岀粰鍑轟竴浜涚畝鐭殑鍛戒護鎬葷粨璇存槑銆?br>
k
緇堟涓涓繘紼嬨傜郴緇熷皢鎻愮ず鐢ㄦ埛杈撳叆闇瑕佺粓姝㈢殑榪涚▼PID錛屼互鍙婇渶瑕佸彂閫佺粰璇ヨ繘紼嬩粈涔堟牱鐨勪俊鍙楓備竴鑸殑緇堟榪涚▼鍙互浣跨敤15淇″彿錛涘鏋滀笉鑳芥甯哥粨鏉熼偅灝變嬌鐢?
淇″彿9寮哄埗緇撴潫璇ヨ繘紼嬨傞粯璁ゅ兼槸淇″彿15銆傚湪瀹夊叏妯″紡涓鍛戒護琚睆钄姐?br>
i 蹇界暐闂茬疆鍜屽兊姝昏繘紼嬨傝繖鏄竴涓紑鍏沖紡鍛戒護銆?br>
q 閫鍑虹▼搴忋?br>
r 閲嶆柊瀹夋帓涓涓繘紼嬬殑浼樺厛綰у埆銆傜郴緇熸彁紺虹敤鎴瘋緭鍏ラ渶瑕佹敼鍙樼殑榪涚▼PID浠ュ強闇瑕佽緗殑
榪涚▼浼樺厛綰у箋傝緭鍏ヤ竴涓鍊煎皢浣夸紭鍏堢駭闄嶄綆錛屽弽涔嬪垯鍙互浣胯榪涚▼鎷ユ湁鏇撮珮鐨勪紭鍏堟潈銆傞粯璁ゅ兼槸10銆?br>
S 鍒囨崲鍒扮瘡璁℃ā寮忋?br>
s 鏀瑰彉涓ゆ鍒鋒柊涔嬮棿鐨勫歡榪熸椂闂淬傜郴緇熷皢鎻愮ず鐢ㄦ埛杈撳叆鏂扮殑鏃墮棿錛屽崟浣嶄負s銆傚鏋滄湁灝忔暟錛?
灝辨崲綆楁垚m s銆傝緭鍏?鍊煎垯緋葷粺灝嗕笉鏂埛鏂幫紝榛樿鍊兼槸5
s銆傞渶瑕佹敞鎰忕殑鏄鏋滆緗お灝忕殑鏃墮棿錛屽緢鍙兘浼氬紩璧蜂笉鏂埛鏂幫紝浠庤屾牴鏈潵涓嶅強鐪嬫竻鏄劇ず鐨勬儏鍐碉紝鑰屼笖緋葷粺璐熻澆涔熶細澶уぇ澧炲姞銆?br>
f鎴栬匜 浠庡綋鍓嶆樉紺轟腑娣誨姞鎴栬呭垹闄ら」鐩?br>
o鎴栬匫 鏀瑰彉鏄劇ず欏圭洰鐨勯『搴忋?br>
l 鍒囨崲鏄劇ず騫沖潎璐熻澆鍜屽惎鍔ㄦ椂闂翠俊鎭?br>
m 鍒囨崲鏄劇ず鍐呭瓨淇℃伅銆?br>
t 鍒囨崲鏄劇ず榪涚▼鍜孋PU鐘舵佷俊鎭?br>
c 鍒囨崲鏄劇ず鍛戒護鍚嶇О鍜屽畬鏁村懡浠よ銆?br>
銆M 鏍規嵁椹葷暀鍐呭瓨澶у皬榪涜鎺掑簭銆?br>
P 鏍規嵁CPU浣跨敤鐧懼垎姣斿ぇ灝忚繘琛屾帓搴忋?br>
T 鏍規嵁鏃墮棿/绱鏃墮棿榪涜鎺掑簭銆?br>
W 灝嗗綋鍓嶈緗啓鍏/.toprc鏂囦歡涓傝繖鏄啓top閰嶇疆鏂囦歡鐨勬帹鑽愭柟娉曘?/span>
]]> Unix Network Programming - Vol2 璇諱功絎旇(Chapter 9. Record Locking) http://m.shnenglu.com/bujiwu/archive/2009/12/18/103474.htmlbujiwu bujiwu Fri, 18 Dec 2009 07:57:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/12/18/103474.html http://m.shnenglu.com/bujiwu/comments/103474.html http://m.shnenglu.com/bujiwu/archive/2009/12/18/103474.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/103474.html http://m.shnenglu.com/bujiwu/services/trackbacks/103474.html
#include < sys / types.h > #include < errno.h > #include < fcntl.h > #include < stdio.h > #include < stdlib.h > #include < string .h > #include < unistd.h > #define FILE_PATH "LockFile.txt" #define MAXLINE 4096 /* max text line length */ #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) int LockSet( int fd, int Type) { struct flock lock ; lock .l_type = Type; /* F_RDLCK, F_WRLCK, F_UNLCK */ lock .l_start = 0 ; /* byte offset, relative to l_whence */ lock .l_whence = SEEK_END; /* SEEK_SET, SEEK_CUR, SEEK_END */ lock .l_len = 0 ; /* #bytes (0 means to EOF) */ return fcntl( fd, F_SETLK, & lock ); } int main( int argc, char ** argv) { char line[MAXLINE] = { 0 }; int fd = open(FILE_PATH, O_RDWR | O_CREAT | O_APPEND , FILE_MODE); if ( LockSet(fd, F_WRLCK) < 0 ) { if (errno == EACCES || errno == EAGAIN) { printf( " This program has running!\n " ); close(fd); } else { printf(" call fcntl function error.%s\n " , strerror(errno) ); } exit( 1 ); } printf( " lock file [%s] successful \n " , FILE_PATH); snprintf(line, sizeof (line), " %ld\n " , ( long ) getpid()); lseek(fd, 0 , SEEK_END); write(fd, line, strlen(line)); getchar(); if ( LockSet(fd, F_UNLCK) < 0 ) { printf( " call fcntl function error.%s\n " , strerror(errno) ); } close(fd); return 0 ; }
http://m.shnenglu.com/Files/bujiwu/RecordLocking.rar ]]>semaphore淇″彿瀛︿範絎旇 http://m.shnenglu.com/bujiwu/archive/2009/11/17/101190.htmlbujiwu bujiwu Tue, 17 Nov 2009 05:28:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/17/101190.html http://m.shnenglu.com/bujiwu/comments/101190.html http://m.shnenglu.com/bujiwu/archive/2009/11/17/101190.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/101190.html http://m.shnenglu.com/bujiwu/services/trackbacks/101190.html sem_init() sem_destroy() sem_post() sem_wait()
// g++ -o semaphore semaphore.cpp -lpthread #include < semaphore.h > #include < errno.h > #include < unistd.h > #include < pthread.h > #include < stdlib.h > #include < stdio.h > #include < string .h > #include " ThreadMutex.h " #define MAXSIZE 10 sem_t g_sem_max; sem_t g_sem_zero; CThreadMutex g_mutex;int g_count = 0 ; int sem_wait_i(sem_t * psem) { int rv = 0 ; while ( 0 != ( rv = sem_wait(psem) ) ) { if ( errno == EINTR ) { continue ; } else { printf(" sem_wait %s\n " , strerror(errno) ); break ; } } return rv; } void * producer_thread( void * Parameter) { while ( true ) { sleep( 2 ); if ( sem_wait_i( & g_sem_max) != 0 ) { break ; } g_mutex.Lock(); g_count ++ ; printf( " Producer=%d\n " , g_count); sem_post( & g_sem_zero); g_mutex.UnLock(); } return NULL; } void * consumer_thread( void * Parameter) { while ( true ) { sleep( 3 ); if ( sem_wait_i( & g_sem_zero) != 0 ) { break ; } g_mutex.Lock(); g_count -- ; printf( " Consumer=%d\n " , g_count); sem_post( & g_sem_max); g_mutex.UnLock(); } return NULL; } int main( int argc, char * argv[]) { if ( sem_init( & g_sem_zero, 0 , 0 ) != 0 ) { printf( " sem_init %s\n " , strerror(errno) ); return - 1 ; } if ( sem_init( & g_sem_max, 0 , MAXSIZE) != 0 ) { printf( " sem_init %s\n " , strerror(errno) ); return - 1 ; } pthread_t pro_thread; pthread_t sum_thread; if ( pthread_create( & sum_thread, NULL, consumer_thread, NULL) != 0 ) { printf( " pthread_create%s\n " , strerror(errno) ); return - 1 ; } if ( pthread_create( & pro_thread, NULL, producer_thread, NULL) != 0 ) { printf( " pthread_create%s\n " , strerror(errno) ); return - 1 ; } if ( pthread_join(pro_thread, NULL) != 0 ) { printf( " pthread_join %s\n " , strerror(errno) ); return - 1 ; } if ( pthread_join(sum_thread, NULL) != 0 ) { printf( " pthread_join %s\n " , strerror(errno) ); return - 1 ; } sem_destroy( & g_sem_zero); sem_destroy( & g_sem_max); return 0 ; }
http://m.shnenglu.com/Files/bujiwu/semaphore.rar ]]> setitimer鍑芥暟浣跨敤絎旇 http://m.shnenglu.com/bujiwu/archive/2009/11/16/101061.htmlbujiwu bujiwu Mon, 16 Nov 2009 05:50:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/16/101061.html http://m.shnenglu.com/bujiwu/comments/101061.html http://m.shnenglu.com/bujiwu/archive/2009/11/16/101061.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/101061.html http://m.shnenglu.com/bujiwu/services/trackbacks/101061.html 鍑芥暟鍘熷瀷 int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); DESCRIPTION The system provides each process with three interval timers, each decrementing in a distinct time domain. When any timer expires, a signal is sent to the process, and the timer (potentially) restarts. ITIMER_REAL decrements in real time, and delivers SIGALRM upon expiration. ITIMER_VIRTUAL decrements only when the process is executing, and delivers SIGVTALRM upon expiration. ITIMER_PROF decrements both when the process executes and when the system is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this timer is usually used to profile the time spent by the application in user and kernel space. SIG- PROF is delivered upon expiration. Timer values are defined by the following structures: struct itimerval { struct timeval it_interval; /* next value */ struct timeval it_value; /* current value */ }; struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ };
#include < stdio.h > #include < unistd.h > #include < signal.h > #include < string .h > #include < sys / time.h > #include < errno.h > void PrintMsg( int Num) { printf( " %s\n " , " Hello World " ); return ; } int main( int argc, char * argv[]) { signal(SIGALRM, PrintMsg); struct itimerval tick; tick.it_value.tv_sec = 10 ; // 鍗佺閽熷悗灝嗗惎鍔ㄥ畾鏃跺櫒 tick.it_value.tv_usec = 0 ; tick.it_interval.tv_sec = 1 ; // 瀹氭椂鍣ㄥ惎鍔ㄥ悗錛屾瘡闅?縐掑皢鎵ц鐩稿簲鐨勫嚱鏁?/span> tick.it_interval.tv_usec = 0 ; // setitimer灝嗚Е鍙慡IGALRM淇″彿 int ret = setitimer(ITIMER_REAL, & tick, NULL); if ( ret != 0 ) { printf( " Set timer error. %s \n " , strerror(errno) ); return - 1 ; } printf( " Wait!\n " ); getchar(); return 0 ; }
]]>pthread_mutex_t灝佽 http://m.shnenglu.com/bujiwu/archive/2009/11/08/pthread_mutex.htmlbujiwu bujiwu Sun, 08 Nov 2009 12:57:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/08/pthread_mutex.html http://m.shnenglu.com/bujiwu/comments/100413.html http://m.shnenglu.com/bujiwu/archive/2009/11/08/pthread_mutex.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/100413.html http://m.shnenglu.com/bujiwu/services/trackbacks/100413.html
//Mutex.cpp #include < pthread.h > #include < iostream > using namespace std; class ThreadMutex { public : ThreadMutex() { pthread_mutex_init( & mtx, NULL); } ~ ThreadMutex() { pthread_mutex_destroy( & mtx ); } inline void Lock() { pthread_mutex_lock( & mtx ); } inline void UnLock() { pthread_mutex_unlock( & mtx ); } private : pthread_mutex_t mtx; }; //浠ヤ笅涓烘祴璇曠敤渚?br>ThreadMutex g_Mutex; void * PrintMsg( void * lpPara) { char * msg = ( char * )lpPara; g_Mutex.Lock(); for ( int i = 0 ; i < 5 ; i ++ ) { cout << msg << endl; sleep( 1 ); } g_Mutex.UnLock(); return NULL; } int main() { pthread_t t1,t2; // 鍒涘緩涓や釜宸ヤ綔綰跨▼錛岀1涓嚎紼嬫墦鍗?0涓?錛岀2涓嚎紼嬫墦鍗?0涓?銆?/span> pthread_create( & t1, NULL, & PrintMsg, ( void * ) " First print thread " ); pthread_create( & t2, NULL, & PrintMsg, ( void * ) " Second print thread " ); // 絳夊緟綰跨▼緇撴潫 pthread_join( t1, NULL); pthread_join( t2, NULL); return 0 ; }
閫氳繃g++ -o Mutex Mutex.cpp -lpthread緙栬瘧銆?br> ]]>榪涚▼闂撮氳--System V 鍏變韓鍐呭瓨 http://m.shnenglu.com/bujiwu/archive/2009/11/08/100390.htmlbujiwu bujiwu Sun, 08 Nov 2009 01:39:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/08/100390.html http://m.shnenglu.com/bujiwu/comments/100390.html http://m.shnenglu.com/bujiwu/archive/2009/11/08/100390.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/100390.html http://m.shnenglu.com/bujiwu/services/trackbacks/100390.html
#include < sys / ipc.h > #include < sys / shm.h > #include < unistd.h > #include < errno.h > #include < stdio.h > #include < stdlib.h > #include < string .h > #include < errno.h > #include < sys / types.h > using namespace std; int main( int argc, char * argv[]) { key_t key = ftok( " /etc/passwd " , ' a ' ); if ( - 1 == key ) { fprintf(stderr, " Creat Key Error:%s\n " , strerror(errno)); return - 1 ; } /* if your IPC are used by processes related bya fork() (parent-children-grandchildren ) use IPC_PRIVATE as the key */ int shm_id = shmget( key, 1024 , IPC_CREAT | 0660 ); if ( shm_id == - 1 ) { if ( shmctl(shm_id, IPC_RMID, NULL) == - 1 ) { fprintf(stderr, " shmctl remove shmid error:%s\n " , strerror(errno )); return - 1 ; } shm_id = shmget( key, 1024 , IPC_CREAT | 0660 ); if ( shm_id == - 1 ) { fprintf(stderr, " shmget create error:%s\n " , strerror(errno) ); return - 1 ; } } char * pMap = ( char * )shmat(shm_id, NULL, 0 ); if ( ( int )pMap == - 1 ) { fprintf(stderr, " shmat create error:%s\n " , strerror(errno) ); shmctl(shm_id, IPC_RMID, NULL); return - 1 ; } strcpy( pMap, " Bujiwu Swallow " ); getchar(); shmdt(pMap); shmctl(shm_id, IPC_RMID, NULL); return 0 ; }
#include < sys / ipc.h > #include < sys / shm.h > #include < unistd.h > #include < errno.h > #include < stdio.h > #include < stdlib.h > #include < string .h > #include < errno.h > #include < sys / types.h > using namespace std; int main( int argc, char * argv[]) { key_t key = ftok( " /etc/passwd " , ' a ' ); if ( - 1 == key ) { fprintf(stderr, " Creat Key Error:%s\n " , strerror(errno)); return - 1 ; } /* if your IPC are used by processes related bya fork() (parent-children-grandchildren ) use IPC_PRIVATE as the key */ int shm_id = shmget( key, 1024 , IPC_CREAT | 0660 ); if ( shm_id == - 1 ) { if ( shmctl(shm_id, IPC_RMID, NULL) == - 1 ) { fprintf(stderr, " shmctl remove shmid error:%s\n " , strerror(errno )); return - 1 ; } shm_id = shmget( key, 1024 , IPC_CREAT | 0660 ); if ( shm_id == - 1 ) { fprintf(stderr, " shmget create error:%s\n " , strerror(errno) ); return - 1 ; } } char * pMap = ( char * )shmat(shm_id, NULL, 0 ); if ( ( int )pMap == - 1 ) { fprintf(stderr, " shmat create error:%s\n " , strerror(errno) ); shmctl(shm_id, IPC_RMID, NULL); return - 1 ; } printf( " Shared memory::%s\n " , pMap); shmdt(pMap); shmctl(shm_id, IPC_RMID, NULL); return 0 ; }
http://m.shnenglu.com/Files/bujiwu/ShareMemory.rar ]]>榪涚▼闂撮氳--System V 娑堟伅闃熷垪 http://m.shnenglu.com/bujiwu/archive/2009/11/07/100356.htmlbujiwu bujiwu Sat, 07 Nov 2009 13:47:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/07/100356.html http://m.shnenglu.com/bujiwu/comments/100356.html http://m.shnenglu.com/bujiwu/archive/2009/11/07/100356.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/100356.html http://m.shnenglu.com/bujiwu/services/trackbacks/100356.html 闃呰鍏ㄦ枃 ]]> 杞澆:浠涔堟槸Core Dump http://m.shnenglu.com/bujiwu/archive/2009/11/05/100204.htmlbujiwu bujiwu Thu, 05 Nov 2009 05:12:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/05/100204.html http://m.shnenglu.com/bujiwu/comments/100204.html http://m.shnenglu.com/bujiwu/archive/2009/11/05/100204.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/100204.html http://m.shnenglu.com/bujiwu/services/trackbacks/100204.html http://blog.chinaunix.net/u/16292/showart_1844400.html 1銆佷粈涔堟槸Core Dump? Core鐨勬剰鎬濇槸鍐呭瓨, Dump鐨勬剰鎬濇槸鎵斿嚭鏉? 鍫嗗嚭鏉? 寮鍙戝拰浣跨敤Unix紼嬪簭鏃? 鏈夋椂紼嬪簭鑾悕鍏跺鐨刣own浜? 鍗存病鏈変換浣曠殑鎻愮ず(鏈夋椂鍊欎細鎻愮ずcore dumped). 榪欐椂鍊欏彲浠ユ煡鐪嬩竴涓嬫湁娌℃湁褰㈠core.榪涚▼鍙風殑鏂囦歡鐢熸垚, 榪欎釜鏂囦歡渚挎槸鎿嶄綔緋葷粺鎶婄▼搴廳own鎺夋椂鐨勫唴瀛樺唴瀹規墧鍑烘潵鐢熸垚鐨? 瀹冨彲浠ュ仛涓鴻皟璇曠▼搴忕殑鍙傝? core dump鍙堝彨鏍稿績杞偍, 褰撶▼搴忚繍琛岃繃紼嬩腑鍙戠敓寮傚父, 紼嬪簭寮傚父閫鍑烘椂, 鐢辨搷浣滅郴緇熸妸紼嬪簭褰撳墠鐨勫唴瀛樼姸鍐靛瓨鍌ㄥ湪涓涓猚ore鏂囦歡涓? 鍙玞ore dump. 2銆佸浣曚嬌鐢╟ore鏂囦歡? gdb -c core鏂囦歡璺緞 [搴旂敤紼嬪簭鐨勮礬寰刔 榪涘幓鍚庤緭鍏here鍥炶濺, 灝卞彲浠ユ樉紺虹▼搴忓湪鍝竴琛屽綋鎺夌殑, 鍦ㄥ摢涓嚱鏁頒腑. 3銆佷負浠涔堟病鏈塩ore鏂囦歡鐢熸垚鍛? 鏈夋椂鍊欑▼搴廳own浜? 浣嗘槸core鏂囦歡鍗存病鏈夌敓鎴? core鏂囦歡鐨勭敓鎴愯窡浣犲綋鍓嶇郴緇熺殑鐜璁劇疆鏈夊叧緋? 鍙互鐢ㄤ笅闈㈢殑璇彞璁劇疆涓涓? 鐒跺悗鍐嶈繍琛岀▼搴忎究鎴愮敓鎴恈ore鏂囦歡. ulimit -c unlimited core鏂囦歡鐢熸垚鐨勪綅緗竴鑸簬榪愯紼嬪簭鐨勮礬寰勭浉鍚? 鏂囦歡鍚嶄竴鑸負core.榪涚▼鍙?br> 4銆佺敤gdb鏌ョ湅core鏂囦歡: 涓嬮潰鎴戜滑鍙互鍦ㄥ彂鐢熻繍琛屾椂淇″彿寮曡搗鐨勯敊璇椂鍙戠敓core dump浜? 鍙戠敓core dump涔嬪悗, 鐢╣db榪涜鏌ョ湅core鏂囦歡鐨勫唴瀹? 浠ュ畾浣嶆枃浠朵腑寮曞彂core dump鐨勮. gdb [exec file] [core file] 濡? gdb ./test test.core 鍦ㄨ繘鍏db鍚? 鐢╞t鍛戒護鏌ョ湅backtrace浠ユ鏌ュ彂鐢熺▼搴忚繍琛屽埌鍝噷, 鏉ュ畾浣峜ore dump鐨勬枃浠?>琛? ]]> 鍒涘緩瀹堟姢榪涚▼鍑芥暟 http://m.shnenglu.com/bujiwu/archive/2009/11/01/99952.htmlbujiwu bujiwu Sun, 01 Nov 2009 14:15:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/01/99952.html http://m.shnenglu.com/bujiwu/comments/99952.html http://m.shnenglu.com/bujiwu/archive/2009/11/01/99952.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/99952.html http://m.shnenglu.com/bujiwu/services/trackbacks/99952.html void DaemonInit( void ) { pid_t pid; pid_t sid; // fork to leave parent pid = fork (); if (pid < 0 ) { std::cout << " failed to fork! " << std::endl; exit (EXIT_FAILURE); } else if (pid > 0 ) { // parent process go to exit exit (EXIT_SUCCESS); } // child process sid = setsid (); if (sid < 0 ) { std::cout << " Failed to set session id. " << std::endl; exit (EXIT_FAILURE); } return ; }
]]>Linux涓嶹indows涓璵ap綾籩rase鏂規硶鐨勫樊寮?/title> http://m.shnenglu.com/bujiwu/archive/2009/11/01/map.htmlbujiwu bujiwu Sun, 01 Nov 2009 02:40:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/11/01/map.html http://m.shnenglu.com/bujiwu/comments/99928.html http://m.shnenglu.com/bujiwu/archive/2009/11/01/map.html#Feedback 3 http://m.shnenglu.com/bujiwu/comments/commentRss/99928.html http://m.shnenglu.com/bujiwu/services/trackbacks/99928.html 1 #include < iostream > 2 #include < map > 3 #include < string > 4 5 using namespace std; 6 7 int main( int argc, char * argv[]) 8 { 9 map < string , int > MyMap; 10 11 MyMap[ " bujiwu " ] = 26 ; 12 MyMap[ " swallow " ] = 25 ; 13 14 std::cout << " Before delete element: " << std::endl; 15 for ( map < string , int > ::iterator Itor = MyMap.begin(); 16 Itor != MyMap.end(); Itor ++ ) 17 { 18 std::cout << Itor -> first << " " << Itor -> second << std::endl; 19 } 20 21 for ( map < string , int > ::iterator Itor = MyMap.begin(); 22 Itor != MyMap.end(); ) 23 { 24 if ( Itor -> first == " bujiwu " ) 25 { 26 MyMap.erase(Itor ++ ); //鍦╳indows涓嬩篃鍙互Itor = MyMap.erase(Itor),浣嗘槸鍦╨inux涓嬩笉琛屻?/span> 27 } 28 else 29 { 30 Itor ++ ; 31 } 32 } 33 34 std::cout << " After delete element: " << std::endl; 35 for ( map < string , int > ::iterator Itor = MyMap.begin(); 36 Itor != MyMap.end(); Itor ++ ) 37 { 38 std::cout << Itor -> first << " " << Itor -> second << std::endl; 39 } 40 41 return 0 ; 42 } 43 44
閫氳繃嫻嬭瘯鍦ㄤ笉綆″湪linux榪樻槸Windows騫沖彴涓?vector,list閮芥湁鏂規硶iterator erase(
iterator _Where
);
浣嗘槸鍦↙inux涓媘ap涓病鏈夋柟娉?strong>iterator erase(
iterator _Where
);
鎵浠ヤ笂榪頒唬鐮佸湪Linux騫沖彴涓嬬26琛屽繀欏誨啓鎴怣yMap.erase(Itor++),鑰屼笉鑳藉啓鑳絀tor = MyMap.erase(Itor). 鍦╓indows涓嬩簩縐嶆柟娉曢兘鍙互銆?br> ]]> fork瀛︿範絎旇 http://m.shnenglu.com/bujiwu/archive/2009/09/13/96062.htmlbujiwu bujiwu Sun, 13 Sep 2009 12:25:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/09/13/96062.html http://m.shnenglu.com/bujiwu/comments/96062.html http://m.shnenglu.com/bujiwu/archive/2009/09/13/96062.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/96062.html http://m.shnenglu.com/bujiwu/services/trackbacks/96062.html 1 #include < unistd.h > 2 #include < sys / types.h > 3 #include < stdio.h > 4 #include < string .h > 5 #include < errno.h > 6 7 int main( int argc , char * argv[]) 8 { 9 pid_t my_pid = getpid(); 10 pid_t parent_pid = getppid(); 11 12 printf( " ProcessID =%ld ParentID =%ld\n " , my_pid, parent_pid); 13 14 pid_t child = fork(); 15 16 printf( " -------------------------------------\n " ); 17 printf( " Fork Process ID = %ld \n " , child ); 18 19 switch ( child ) 20 { 21 case - 1 : 22 printf( " Create my child process error by fork func, errno=%ld\n " , strerror(errno) ); 23 break ; 24 25 case 0 : 26 printf( " This is child process! Process ID = %ld\n " , getpid() ); 27 break ; 28 29 default : 30 printf( " This is not child process! Process ID= %ld Child Process ID=%ld\n " , getpid(), child); 31 32 } 33 34 printf( " who am I? Process ID=%ld Parent Process ID= %ld\n " , getpid(), getppid()); 35 36 return 0 ; 37 } 38
榪愯緇撴灉 [swallow@localhost syspr]$ ./process ProcessID =1182 ParentID =1090 ------------------------------------- Fork Process ID = 0 This is child process! Process ID = 1183 who am I? Process ID=1183 Parent Process ID= 1182 ------------------------------------- Fork Process ID = 1183 This is not child process! Process ID= 1182 Child Process ID=1183 who am I? Process ID=1182 Parent Process ID= 1090 [swallow@localhost syspr]$http://m.shnenglu.com/Files/bujiwu/fork.rar ]]>Linux娣誨姞鐜鍙橀噺涓嶨CC緙栬瘧鍣ㄦ坊鍔營NCLUDE涓嶭IB鐜鍙橀噺 http://m.shnenglu.com/bujiwu/archive/2009/01/25/72575.htmlbujiwu bujiwu Sun, 25 Jan 2009 10:20:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/01/25/72575.html http://m.shnenglu.com/bujiwu/comments/72575.html http://m.shnenglu.com/bujiwu/archive/2009/01/25/72575.html#Feedback 2 http://m.shnenglu.com/bujiwu/comments/commentRss/72575.html http://m.shnenglu.com/bujiwu/services/trackbacks/72575.html .bashrc鎴?bash_profile閲屽鍔犱笅闈㈢殑鍐呭錛?br>(娉ㄦ剰錛氱瓑鍙峰墠闈笉瑕佸姞絀烘牸,鍚﹀垯鍙兘鍑虹幇 command not found) #鍦≒ATH涓壘鍒板彲鎵ц鏂囦歡紼嬪簭鐨勮礬寰勩?br>export PATH =$PATH:$HOME/bin #gcc鎵懼埌澶存枃浠剁殑璺緞 C_INCLUDE_PATH=/usr/include/libxml2:/MyLib export C_INCLUDE_PATH #g++鎵懼埌澶存枃浠剁殑璺緞 CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib export CPLUS_INCLUDE_PATH #鎵懼埌鍔ㄦ侀摼鎺ュ簱鐨勮礬寰?br>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib export LD_LIBRARY_PATH #鎵懼埌闈欐佸簱鐨勮礬寰?br>LIBRARY_PATH=$LIBRARY_PATH:/MyLib export LIBRARY_PATH ]]> Linux綰跨▼瀛︿範絎旇 http://m.shnenglu.com/bujiwu/archive/2009/01/18/72256.htmlbujiwu bujiwu Sun, 18 Jan 2009 06:00:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/01/18/72256.html http://m.shnenglu.com/bujiwu/comments/72256.html http://m.shnenglu.com/bujiwu/archive/2009/01/18/72256.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/72256.html http://m.shnenglu.com/bujiwu/services/trackbacks/72256.html 1 #include < stdio.h > /* standard I/O routines */ 2 #include < pthread.h > /* pthread functions and data structures */ 3 #include < unistd.h > /* head file for sleep function */ 4 5 /* global mutex for our program. assignment initializes it */ 6 pthread_mutex_t a_mutex = PTHREAD_MUTEX_INITIALIZER; 7 8 /* function to be executed by the new thread */ 9 void * do_loop( void * data) 10 { 11 int me = * (( int * )data); /* thread identifying number */ 12 int rc; /* contain mutex lock/unlock results */ 13 14 /* lock the mutex, to assure exclusive */ 15 rc = pthread_mutex_lock( & a_mutex); 16 17 for ( int i = 0 ; i < 4 ; i ++ ) 18 { 19 printf( " '%d' - Got '%d'\n " , me, i); 20 sleep( 1 ); 21 } 22 23 /* unlock mutex */ 24 rc = pthread_mutex_unlock( & a_mutex); 25 26 /* terminate the thread */ 27 pthread_exit(NULL); 28 } 29 30 /* like any CPlusPlus program, program's execution begins in main */ 31 /* g++ -o Thread Thread.cpp -lpthread */ 32 int main( int argc, char * argv[]) 33 { 34 int thr_id; /* thread ID for the newly created thread */ 35 pthread_t p_thread1; /* thread's structure */ 36 pthread_t p_thread2; /* thread's structure */ 37 int a = 1 ; /* thread 1 identifying number */ 38 int b = 2 ; /* thread 2 identifying number */ 39 40 /* create a new thread that will execute 'do_loop()' */ 41 thr_id = pthread_create( & p_thread1, NULL, do_loop, ( void * ) & a); 42 43 /* create a new thread */ 44 thr_id = pthread_create( & p_thread2, NULL, do_loop, ( void * ) & b); 45 46 /* wait until sub thread exit */ 47 pthread_join(p_thread1, NULL); 48 pthread_join(p_thread2, NULL); 49 50 return 0 ; 51 } 52
緙栬瘧錛?nbsp;gcc -o pthread pthread.c -lpthread
]]>Gvim鎿嶄綔姹囨?/title> http://m.shnenglu.com/bujiwu/archive/2009/01/04/71166.htmlbujiwu bujiwu Sun, 04 Jan 2009 13:39:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/01/04/71166.html http://m.shnenglu.com/bujiwu/comments/71166.html http://m.shnenglu.com/bujiwu/archive/2009/01/04/71166.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/71166.html http://m.shnenglu.com/bujiwu/services/trackbacks/71166.html s/old/new/g #鏇挎崲褰撳墠琛宱ld涓簄ew 6,7s/old/new/g #鏇挎崲絎叚琛屽埌絎竷琛屼腑鐨刼ld涓簄ew %s/old/new/g #鏇挎崲鍏ㄩ儴鐨刼ld涓簄ew 2銆佹煡鎵懼瓧絎︿覆 :/Count #姝e悜鏌ユ壘Count 鎸塶鏄劇ず涓嬩竴嬈?br> :%Count #閫嗗悜鏌ユ壘Count 鍦ㄥ綋鍓嶅瓧絎︿覆涓婃寜*,姝e悜鏌ユ壘褰撳墠瀛楃涓?br> 鍦ㄥ綋鍓嶅瓧絎︿覆涓婃寜#,鍙嶅悜鏌ユ壘褰撳墠瀛楃涓?br>
3銆佸瓧絎︿覆鑱旀兂 Ctrl+p 4銆侀噸澶嶄笂涓琛屽唴瀹?br> Ctrl+y 5銆佽煩杞?br> gg 璺沖埌鏂囦歡棣栬 G 璺沖埌鏂囦歡灝捐 123G 璺沖埌絎?23琛?br> 鏁板瓧0 縐誨埌褰撳墠琛屾湯灝?br> $ 縐誨埌褰撳墠琛岄閮?br> 鍏夋爣鍦▄銆亇銆乕銆乚絳夋嫭鍙蜂笂鎸?璺沖埌鐩稿簲鐨勬嫭鍙蜂笂 6銆佹柊澧炰竴琛?br> o 鍦ㄥ綋鍓嶅厜鏍囦笅涓琛屾柊澧炰竴琛?br> O 鍦ㄥ綋鍓嶅厜鏍囦笂涓琛屾柊澧炰竴琛?br> 7銆佹樉紺?闅愯棌琛屽彿 set nu 鏄劇ず琛屽彿 set nonu 闅愯棌絳夊彿 8銆佸湪Gvim涓墽琛屽閮╯hell鍛戒護 :!澶栭儴鍛戒護錛屽: :!ls -l 9銆佸垹闄?澶嶅埗琛?br> dd 鍒犻櫎涓琛?br> 3dd 鍒犻櫎褰撳墠鍏夋爣鎵鍦ㄨ鐨勪互涓嬩笁琛?br> yy 澶嶅埗涓琛?br> 3yy 澶嶅埗涓夎 p 綺樿創 10銆佹挙娑堜笌鎾ゆ秷鐨勬挙娑?br> u 鎾ゆ秷 Ctrl+R 鎾ゆ秷鐨勬挙娑?br> .vimrc妯℃澘http://m.shnenglu.com/Files/bujiwu/vimrc.rar "============================================ syntax on set nu set autoindent set cindent set smartindent set softtabstop=4 set tabstop=4 set shiftwidth=4 set expandtab set smarttab set nobackup set cursorline set tags="./tags,./../tags,./../../tags" "=================================================
]]> Linux涓嬫枃浠舵墦鍖呬笌瑙e寘 http://m.shnenglu.com/bujiwu/archive/2009/01/04/71152.htmlbujiwu bujiwu Sun, 04 Jan 2009 11:23:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/01/04/71152.html http://m.shnenglu.com/bujiwu/comments/71152.html http://m.shnenglu.com/bujiwu/archive/2009/01/04/71152.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/71152.html http://m.shnenglu.com/bujiwu/services/trackbacks/71152.html tar -cvf Pro.tar /home/lin/Pro #灝?home/lin/Pro鏂囦歡澶逛笅鐨勬墍鏈夋枃浠舵墦鍖呮垚Pro.tar 鎵撹В鍖?.tar.gz) tar -cvzf firefox-3.0.3.tar.gz firefox #灝唂irefox鏂囦歡澶規墦鍖呬負firefox-3.0.3.tar.gz tar -xvzf firefox-3.0.3.tar.gz 鎵撹В鍖?.tar.bz2) tar -cvjf firefox-3.0.3.tar.bz2 firefox/ #灝唂irefox鏂囦歡澶規墦鍖呬負firefox-3.0.3.tar.bz2 tar -xvjf firefox-3.0.3.tar.bz2 鍙傛暟璇存槑錛?br>c 鍒涘緩鏂扮殑妗f鏂囦歡銆傚鏋滅敤鎴鋒兂澶囦喚涓涓洰褰曟垨鏄竴浜涙枃浠訛紝灝辮閫夋嫨榪欎釜閫夐」銆?br>x 浠庢。妗堟枃浠朵腑閲婃斁鏂囦歡銆?br>v 璇︾粏鎶ュ憡tar澶勭悊鐨勬枃浠朵俊鎭傚鏃犳閫夐」錛宼ar涓嶆姤鍛婃枃浠朵俊鎭?br>z 鐢╣zip鏉ュ帇緙?瑙e帇緙╂枃浠訛紝鍔犱笂璇ラ夐」鍚庡彲浠ュ皢妗f鏂囦歡榪涜鍘嬬緝錛屼絾榪樺師鏃朵篃涓瀹氳浣跨敤璇ラ夐」榪涜瑙e帇緙┿? f 浣跨敤妗f鏂囦歡鎴栬澶囷紝榪欎釜閫夐」閫氬父鏄繀閫夌殑銆?br> ]]> Linux甯哥敤鐭ヨ瘑鏀墮泦錛?/title> http://m.shnenglu.com/bujiwu/archive/2009/01/04/71149.htmlbujiwu bujiwu Sun, 04 Jan 2009 11:06:00 GMT http://m.shnenglu.com/bujiwu/archive/2009/01/04/71149.html http://m.shnenglu.com/bujiwu/comments/71149.html http://m.shnenglu.com/bujiwu/archive/2009/01/04/71149.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/71149.html http://m.shnenglu.com/bujiwu/services/trackbacks/71149.html ctrl+z 灝嗚繘紼嬪垏鎹㈠埌鍚庡彴 fg 璋冨埌鍓嶅彴 2銆乴inux鎵歸噺鏌ユ壘鏂囦歡鍐呭 find ./ -name "*.cpp" | xargs grep '瑕佹煡鎵劇殑鍐呭' 濡?find . -name "*.cpp" | xargs grep 'main' 濡傛灉闇瑕佹煡鎵劇殑鍐呭鍖呭惈鐗規畩絎﹀彿錛屾瘮濡?絳夌瓑錛実rep瑕佸姞鍙傛暟 find ./ -name "*.cpp" | xargs grep -F '瑕佹煡鎵劇殑鍐呭' 3銆佸垹闄ょ壒瀹氱被鍨嬬殑鏂囦歡 濡?鍚庣紑鏄?log鐨勬枃浠?br> find . -name "*.log" -exec rm {} \; 鎴栬? find . -name "*.log" | xargs rm 4銆佹枃浠舵壒閲忛噸鍛藉悕 灝嗘墍鏈?.h鍚庣紑鍚嶇殑鏂囦歡閲嶅懡鍚嶄負*.header rename .h .header *.h 鏍煎紡錛?rename 鏇挎崲鍓嶇殑鍐呭 鏇挎崲鍚庣殑鍐呭 閫氶厤絎?br> 5銆佸垪鍑洪櫎浠涔堜箣澶栫殑鏂囦歡 鍒楀嚭涓嶅寘鎷瑂wallow瀛楃鐨勬枃浠訛細 ls | grep -v swallow 鍒犻櫎涓嶅寘鎷瑂wallow瀛楃鐨勬枃浠訛細 ls | grep -v swallow | xargs rm 6銆佸皢鐢ㄦ埛澧炲姞鍒皊udo緇?br> root# vim /etc/sudoers 鍦ㄨ繖閲屽鍔犲唴瀹癸細 ## Allow root to run any commands anywhere root ALL=(ALL) ALL bujiwu ALL=(ALL) ALL 7銆佷慨鏀?etc/crontab鏂囦歡澧炲姞緋葷粺瀹氭椂榪愯紼嬪簭鍔熻兘 8銆乵ake鏃舵嫻嬪埌鏃墮挓閿欒銆傛偍鐨勫垱寤哄彲鑳芥槸涓嶅畬鏁? 鐢變簬鏂囦歡鏃墮挓涓庣郴緇熸椂閽熶笉鍖歸厤銆傛墍浠ュ彲浠ョ敤touch鏇存敼鏂囦歡鏃墮棿鏉pdate. find . -type f -exec touch {} \; ]]> Linux涓婱akefile鏂囦歡 http://m.shnenglu.com/bujiwu/archive/2008/12/29/70720.htmlbujiwu bujiwu Mon, 29 Dec 2008 14:40:00 GMT http://m.shnenglu.com/bujiwu/archive/2008/12/29/70720.html http://m.shnenglu.com/bujiwu/comments/70720.html http://m.shnenglu.com/bujiwu/archive/2008/12/29/70720.html#Feedback 0 http://m.shnenglu.com/bujiwu/comments/commentRss/70720.html http://m.shnenglu.com/bujiwu/services/trackbacks/70720.html 鐢熸垚鍔ㄦ佸簱(*.so)Makefile鏂囦歡 #Lib information CURDIR =$(shell pwd) LIBNAME :=libmyso.so OUTDIR :=$(CURDIR) OUTFILE :=$(OUTDIR)/$(LIBNAME) SRC =node.cpp OBJS =$(SRC:.cpp=.o) #Complier information CC = g++ INCPATH := LIBPATH := LIBS := COMOPT := -O2 all:$(OBJS) $(CC) -fPIC -shared -o $(OUTFILE) $(OBJS) %.o:%.cpp $(CC) -c $(COMOPT) $(INCPATH) -o $@ $< clean: rm -rf $(CURDIR)/*.o 鐢熸垚闈欐佸簱(*.a)Makefile鏂囦歡 #lib information CURDIR =$(shell pwd) LIBNAME :=libmylib.a OUTDIR :=$(CURDIR) OUTFILE :=$(OUTDIR)/$(LIBNAME) SRC = Display.cpp OBJS =$(SRC:.cpp=.o) #complier information CC=g++ INCPATH := LIBPATH := LIBS := COMOPT := -O2 all:$(OBJS) ar -r $(OUTFILE) $(OBJS) %.o:%.cpp $(CC) -c $(COMOPT) $(INCPATH) -o $@ $< clean: rm -rf $(CURDIR)/*.o 姣旇緝閫氱敤鐨凪akefile鏂囦歡 #CPP Files Directory vpath %.cpp ./../ vpath %.cpp ./../Student #Head Files Directory vpath %.h ./../Student/ #Get Makefile Current Directory CURDIR =$(shell pwd) SRC =Main.cpp \ Student.cpp SRC_OBJ =$(SRC:.cpp=.o) CCFLAGS =-O2 -g -DUT_4_16 CXX =g++ CPPFLAGS = #Load Static Library LIBDIR =-L $(CURDIR)/../StaticLib -lmylib $(CURDIR)/../DynamicLib/libmyso.so #Load Library Head Files INCDIR =-I $(CURDIR)/../StaticLib -I $(CURDIR)/../DynamicLib .PHONY :all all :edit run .PHONY :edit edit: $(SRC_OBJ) $(SRC_OBJ):%.o :%.cpp $(CXX) $(INCDIR) -c $(CCFLAGS) $(CPPFLAGS) $< -o $@ .PHONY :run run: $(SRC_OBJ) $(CXX) $(INCDIR) $(SRC_OBJ) $(LIBDIR) -o Main .PHONY :clean clean: rm $(SRC_OBJ)鏈綆鍗曠殑Makefile鏂囦歡 #鍋囪鍙湁涓涓枃浠禡ain.cpp鐢熸垚Makefile鏂囦歡 Main:Main.o g++ -o $@ $^ %.o:%.cpp %.h g++ -c $@ $>
涓嶉渶瑕佹墜宸ユ坊鍔犲悇涓枃浠剁殑渚濊禆鍏崇郴錛屼嬌鐢╲path鑷姩鎼滅儲鏂囦歡錛?br>
嫻嬭瘯宸ョ▼錛?br>
http://m.shnenglu.com/Files/bujiwu/Linux.rar
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲午夜电影 |
免费成人在线观看视频 |
久久精品一本久久99精品 |
亚洲伦理自拍 |
一区二区电影免费观看 |
亚洲美女中文字幕 |
一区二区三区免费网站 |
亚洲图片你懂的 |
欧美一级视频 |
美女精品视频一区 |
亚洲国产精品一区二区尤物区 |
欧美国产成人精品 |
亚洲精品国精品久久99热 |
99精品热视频 |
欧美在线免费看 |
欧美大尺度在线 |
国产精品激情 |
伊人狠狠色丁香综合尤物 |
99国产麻豆精品 |
香蕉成人久久 |
欧美成人精品福利 |
一区二区三区视频观看 |
久久成人免费电影 |
欧美激情第六页 |
国产精品普通话对白 |
极品尤物一区二区三区 |
一本综合久久 |
美女脱光内衣内裤视频久久网站 |
亚洲欧美国产制服动漫 |
亚洲一区二区精品视频 |
午夜精品福利电影 |
欧美大香线蕉线伊人久久国产精品 |
欧美日韩亚洲一区二区 |
国色天香一区二区 |
亚洲先锋成人 |
欧美成人午夜免费视在线看片
|
亚洲欧美激情一区二区 |
麻豆精品视频在线观看视频 |
一区二区高清视频在线观看 |
久久综合网色—综合色88 |
国产日产亚洲精品 |
亚洲午夜久久久久久久久电影院
|
国产在线拍揄自揄视频不卡99 |
亚洲电影网站 |
久久久人成影片一区二区三区观看
|
在线观看亚洲视频啊啊啊啊 |
亚洲——在线 |
日韩视频在线永久播放 |
欧美成人午夜激情 |
亚洲国产欧美在线 |
美女久久网站 |
麻豆精品在线视频 |
亚洲激情成人在线 |
欧美黄色免费 |
欧美不卡福利 |
99re6热在线精品视频播放速度 |
欧美18av |
久久中文字幕一区 |
伊人久久亚洲美女图片 |
另类欧美日韩国产在线 |
久久日韩粉嫩一区二区三区 |
激情亚洲网站 |
你懂的视频欧美 |
欧美1级日本1级 |
99精品福利视频 |
一本大道久久a久久精二百 |
欧美日韩日韩 |
欧美一区二区视频网站 |
欧美一区二区三区四区夜夜大片 |
国产精品美女久久 |
欧美亚洲日本一区 |
欧美中文字幕第一页 |
狠狠色狠狠色综合日日91app |
久久一区精品 |
欧美韩日亚洲 |
亚洲免费在线观看 |
欧美中在线观看 |
亚洲肉体裸体xxxx137 |
日韩一级黄色av |
国产日韩精品在线播放 |
美国十次了思思久久精品导航 |
久久久av毛片精品 |
久久久人成影片一区二区三区 |
欧美中文字幕不卡 |
最新日韩av |
一区二区三区欧美 |
国产亚洲欧美一区二区三区 |
欧美成人精品在线观看 |
欧美精品偷拍 |
久久精品国产免费 |
欧美成人精品不卡视频在线观看 |
中日韩男男gay无套
|
亚洲少妇在线 |
国产一区二三区 |
亚洲区一区二区三区 |
国产精品毛片高清在线完整版 |
久久影视三级福利片 |
欧美久久久久免费 |
久久av资源网 |
欧美日本国产 |
看欧美日韩国产 |
国产精品热久久久久夜色精品三区 |
久久九九电影 |
欧美日韩精品中文字幕 |
久热爱精品视频线路一 |
国产精品家庭影院 |
亚洲激情一区 |
精品成人久久 |
小黄鸭精品密入口导航 |
一本色道久久综合精品竹菊 |
久久九九全国免费精品观看 |
亚洲尤物在线视频观看 |
欧美日本久久 |
欧美电影免费观看 |
国产在线视频欧美 |
亚洲免费伊人电影在线观看av |
亚洲精品四区 |
欧美~级网站不卡 |
久久免费一区 |
很黄很黄激情成人 |
欧美一区二区三区四区在线观看地址 |
在线亚洲一区观看 |
欧美精品v国产精品v日韩精品 |
麻豆精品在线播放 |
国产在线视频不卡二 |
先锋资源久久 |
久久成人综合视频 |
国产日韩欧美不卡在线 |
99精品国产高清一区二区 |
亚洲精品日韩精品 |
免费久久精品视频 |
欧美高清在线播放 |
亚洲人成网站色ww在线 |
久久综合久久综合久久 |
久久综合九色综合欧美狠狠 |
国产视频不卡 |
欧美在线一二三 |
免费欧美日韩 |
亚洲国产欧美日韩 |
欧美久久一级 |
亚洲午夜一区 |
欧美一区二区三区在线视频
|
欧美三级在线视频 |
中国亚洲黄色 |
久久久久久精 |
91久久久久久久久久久久久 |
欧美日韩另类字幕中文 |
亚洲人成网在线播放 |
亚洲欧洲在线一区 |
欧美精品成人在线 |
99精品视频一区二区三区 |
亚洲欧美激情精品一区二区 |
国产精品久久二区 |
欧美一级日韩一级 |
欧美成ee人免费视频 |
亚洲精品黄网在线观看 |
欧美三日本三级少妇三2023 |
亚洲影院一区 |
蜜乳av另类精品一区二区 |
亚洲精品小视频 |
国产精品激情av在线播放 |
久久不射电影网 |
亚洲第一精品久久忘忧草社区 |
正在播放亚洲 |
好吊色欧美一区二区三区四区 |
免播放器亚洲一区 |
一本色道久久 |
久久久女女女女999久久 |
亚洲美女av黄 |
国产欧美日韩三区 |
欧美成人精品在线观看 |
亚洲欧美国产va在线影院 |
女人香蕉久久**毛片精品 |
亚洲视频导航 |
在线精品视频在线观看高清 |
欧美日韩精品免费观看视频 |
欧美中日韩免费视频 |
99国产精品 |
亚洲成人资源网 |
欧美一区二区三区另类 |
亚洲精品影视 |
怡红院精品视频 |
国产精品区二区三区日本
|
国产欧美日韩免费看aⅴ视频 |
免费观看亚洲视频大全 |
欧美一区二视频在线免费观看 |
亚洲欧洲日夜超级视频 |
久久久久国色av免费看影院
|
久久久福利视频 |
亚洲无限av看 |
亚洲精品亚洲人成人网 |
麻豆国产精品一区二区三区 |
亚洲欧美日韩一区二区在线 |
亚洲人午夜精品 |
一区精品在线 |
国产视频一区在线 |
国产精品丝袜xxxxxxx |
欧美理论在线 |
欧美成年人网 |
欧美xx69 |