一、动态链接库与静态链接库的区别( 静态链接库是.lib格式的文件,一般在工程的设置界面加入工程中,程序编译时会把lib文件的代码加入你的程序中因此会增加代码大小,你的程序一运行lib代码强制被装入你程序的运行空间,不能手动移除lib代码。
动态链接库是程序运行时动态装入内存的模块,格式*.dll,在程序运行时可以随意加载和移除,节省内存空间。
在大型的软件项目中一般要实现很多功能,如果把所有单独的功能写成一个个lib文件的话,程序运行的时候要占用很大的内存空间,导致运行缓慢;但是如果将功能写成dll文件,就可以在用到该功能的时候调用功能对应的dll文件,不用这个功能时将dll文件移除内存,这样可以节省内存空间。)
二。百度脚本笔试题:
1.写脚本实现,可以用shell、perl等。在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。
#!/bin/sh
for filename in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $filename>>new
done
注释:第一,用到了find命令,其中-type f表示选取普通文件,-name用于设定文件名;第二,head -n 100命令用于取出前100项。第三,sed -n ‘1p’用于取出文件的第一行内容。第四,>>new表示追加到文件new中。
2. 写脚本实现,可以用shell、perl等。把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。【本人不懂perl,理解不动,哈哈~】
[rocrocket@wupengchong shellstudy]$ cat roc.pl
#!/usr/bin/perl -w
open B,"<b" or die "b error.($!)";
open C,">c" or die "c error.($!)";
my $find=0;
my ($myb,$mya);
while(<B>){
$find=0;
chomp($myb=$_);
print "B ",$myb,"/n";
open A,"<a" or die "a error.($!)";
while(<A>){
chomp($mya=$_);
print "A ",$mya,"/n";
if($mya=~/$myb/){
$find=1;
print "FIND!/n";
}
}
if($find==0){
print C $myb,"/n";
}
}
close A;
close B;
close C;
$linenum=`cat c|wc -l`;
print "c line count:",$linenum;