最近在工作中使用到了perl 指令碼,需要在給定目錄下對各類編譯過的檔案進行 valgrind 安全檢查。 謝了乙個指令碼自動將檢查結果寫入到文字檔案當中。
程式名為 process_files:
原理: 從根目錄(給定引數)開始查詢, 如果找到的檔案仍然為子資料夾,遞迴呼叫。
如果找到的是檔案,則判斷是否是我們感興趣的檔案。
查詢過程中,排除linux下 . .. 資料夾
最後將結果輸出到文字檔案,便於檢視和糾錯。
主要函式: process_files
#!/usr/bin/perl
use warnings;
use strict;
use io::handle;
use file::stat;
use term::ansicolor;
stdout->autoflush(1);
my $binstr = "bin.x86_64";
my $dir = '/rapid/rapid_workspaces/jxu/jxu_rtc_new/fusion/sw';
print ("fusion dir is :$dir\n");
my $wantedfiles = 0;
my $processedfs =0;
my $target = 'valgrind.log';
my $processedfiles = 'valgrindprocessfiles.log';
system ("rm -f $processedfiles"); #remove it
system ("touch $processedfiles"); #create it
print ("processedfiles file is :$processedfiles\n");
system ("rm -f $target"); #remove it
system ("touch $target"); #create it
print ("target file is :$target\n");
sub process_files $/} readdir(dir); #exclude . or .. directory
closedir (dir);
@files = map @files;
for(@files)
else # this a file we found
} }}
print "\nvalgrind unit tests start...\n";
for (my $num =0; $num <3; $num++)
print "\nvalgrind unit tests now start...\n";
#really starts recursively start#
open (processedfiles,'>>',"$processedfiles") or die "couldn't open the file : $!"; # open a file with open command
process_files($dir);
close processedfiles;
close file;
my $editor ="vi "; # finally we open the result file
my $pideditor = fork();
if ($pideditor ==0)
my $pideditor2 = fork();
if ($pideditor2 ==0)
其中,使用到了sub routine : process_files, 具體**如下:
sub process_files $/} readdir(dir); #exclude . or .. directory
closedir (dir);
@files = map @files;
for(@files)
else # this a file we found
}}}
Perl 複製整個資料夾
perl copy只能複製檔案,不能複製資料夾,因此只能用外擴包進行資料夾的複製 進入 搜尋file copy recursive 用文字編輯器開啟包,將包名package file copy recursive改為package recursive 在perl檔案中呼叫,這裡我.pl檔案所在的路徑...
Perl 檔案和資料夾操作
作為一門程式語言,perl有著強大的檔案和資料夾操作功能。perl利用檔案控制代碼 file handle 和資料夾控制代碼 dir handle 與作業系統進行輸入輸出連線。檔案和資料夾控制代碼一般使用大寫子母或指定標量以示特殊。檔案開啟語句及說明 一般加入die函式做開啟失敗的提示。my fil...
linux的資料夾 檔案目錄許可權
linux下檔案的許可權 在當前目錄下,使用ls l命令可以查出當前目錄下非隱藏檔案的許可權設定。在許可權字段一共有十個位 如 rwxrwx w 減號是表示沒有這個許可權。第一位是用於表示檔案屬性的,如果是 d 則表示這是乙個資料夾,如果是 l 表示這是乙個鏈結,如果是 則表示是乙個普通檔案。第2位...