layout: post
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),烏拉特后企業(yè)網(wǎng)站建設(shè),烏拉特后品牌網(wǎng)站建設(shè),網(wǎng)站定制,烏拉特后網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,烏拉特后網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
title: 如何遍歷Linux程序的So模塊
categories: Android
description: 如何遍歷linux程序的so模塊
keywords:
url:
??soinfo是個(gè)鏈表結(jié)構(gòu),從打印的信息來看,是從高地址到低地址排序的,因此要打開一個(gè)未加載的so,自然排在高地址位置,因此往后遍歷即可
先設(shè)定實(shí)驗(yàn)環(huán)境:
# 造 5 個(gè) 目錄,每個(gè)目錄下,造 3 個(gè) 文件和兩個(gè)子目錄如下:
cd $HOME/tmp
for i in d1 d2 d3 d4 d5
do
mkdir -p $i
touch $i/1.txt $i/2.txt $i/3.txt
mkdir -p $i/tmp1 $i/tmp2
done
# 檢驗(yàn)測(cè)試環(huán)境:
$ ls -lR d1
total 0
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 2.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 3.txt
drwxr-sr-x 2 wenlee comm 256 Dec 22 10:35 tmp1/
drwxr-sr-x 2 wenlee comm 256 Dec 22 10:35 tmp2/
# 利用下列腳本來實(shí)現(xiàn)你要做的:
cd $HOME/tmp
for i in */1.txt
do
echo "Found $i, save $i and remove everything else under $(dirname $i)/"
save_this_file=$(basename $i)
curr_dir=$(dirname $i)
# 把這個(gè)1.txt暫時(shí)存到/tmp里面去,為了避免已經(jīng)有同樣的檔案名稱在/tmp,加上$$ (i.e. PID)
mv $i /tmp/${save_this_file}.$$
rm -rf $curr_dir
mkdir -p $curr_dir
mv /tmp/${save_this_file}.$$ $curr_dir
done
# 屏幕執(zhí)行輸出如下:
Found d1/1.txt, save d1/1.txt and remove everything else under d1/
Found d2/1.txt, save d2/1.txt and remove everything else under d2/
Found d3/1.txt, save d3/1.txt and remove everything else under d3/
Found d4/1.txt, save d4/1.txt and remove everything else under d4/
Found d5/1.txt, save d5/1.txt and remove everything else under d5/
# 復(fù)驗(yàn)實(shí)驗(yàn)環(huán)境:
$ ls -l d?/*
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d1/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d2/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d3/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d4/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d5/1.txt
OK?
thanks!
你可以參考如下實(shí)例代碼:function?getFile(file_name)?
local?f?=?assert(io.open(file_name,?'r'))
local?string?=?f:read("*all")
f:close()
return?string
end?function?writeFile(file_name,string)
local?f?=?assert(io.open(file_name,?'w'))
f:write(string)
f:close()
end?--從命令行獲取參數(shù),?如果有參數(shù)則遍歷指定目錄,沒有參數(shù)遍歷當(dāng)前目錄?if?arg[1]?~=?nil?then
cmd?=?"ls?"..arg[1]
else
cmd?=?"ls"?end?print("cmd",?cmd)
--io.popen?返回的是一個(gè)FILE,跟c里面的popen一樣?local?s?=?io.popen(cmd)
local?fileLists?=?s:read("*all")
print(fileLists)
while?true?do?--從文件列表里一行一行的獲取文件名?_,end_pos,?line?=?string.find(fileLists,?"([^\n\r]+.txt)",?start_pos)
if?not?end_pos?then?break?end?--????print?("wld",?line)?local?str?=?getFile(line)
--把每一行的末尾?1,?替換為?0,?local?new?=string.gsub(str,?"1,\n",?"0,\n");
--替換后的字符串寫入到文件。以前的內(nèi)容會(huì)清空?????writeFile(line,?new)
start_pos?=?end_pos?+?1?end
名稱欄目:linux遍歷命令,linux遍歷文件
瀏覽地址:http://jinyejixie.com/article38/dsecgpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、小程序開發(fā)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)