linuxstring
㈠ 用linux指令實現在當前目錄中遞歸查找包含字元串「string」的文件,但不搜索「.svn」目錄
find * ! - name 『*.svn』| xargs grep "string" ,更多關於find命令的聯合使用,請參考書籍《Linux就該這么學》。
㈡ 為什麼在Linux中strlwr()不能編譯通過,已經查看過<string.h>,的確在頭文件中沒有
strlwr和strupr都不是標準的C庫函數!有些編譯器不支持很正常,編譯器不支持的,只能自己定義這兩個函數並且用代碼自己去實現它。
個人使用過VC++2010,是可以編譯通過的,證明VC++2010里邊的編譯器支持這兩個函數。
而linux中的GCC編譯器則編譯不通過,證明linux下的GCC編譯器不支持這兩個函數。
㈢ Linux 下 C++如何將string 轉為 int
用atoi函數,例如:
string str = "asdfasdgsg";
int i = atoi(str.c_str());
轉換後,i結果為0
可以用man atoi查看相關庫函數,如:
㈣ 如何 在linux下查看string庫下的所有函數
cat /usr/include/string.h 可以看到頭文件的內容,包含了函數的聲明
man string很快捷查看,man命令是非常有用的。
㈤ Linux字元串截取幾種方法
簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。
一、Linux shell 截取字元變數的前8位,有方法如下:
㈥ ubuntu系統下linux內核庫函數 /linux/string.h 在什麼位置
如果要看這兩個函數在標准庫中的定義用ctags或cscope生成索引.h,cscope,可以跳轉到函數定義,man malloc,聲明見stdlib。 如果仍然找不到,可以用ctags,si或grep。 windows下用source insight也可,然後查找函數定義,用grep -r 搜索關鍵字,at...
㈦ ubuntu系統下linux內核庫函數 /linux/string.h 在什麼位置
/usr/src/linux$(uname -r)/include
下是默認的頭文件目錄
不過正常來說,ubuntu這種類型的發行版,絕對不需要自己配什麼路徑的,內核頭文件裝上了,linux/string.h就應該能用
㈧ 怎麼給3.4.11的linux內核 添加iptables string模塊
(一).處理內核源碼.
1. [root@kindgeorge src]# cd /usr/src/linux-2.4
2.
[root@kindgeorge linux-2.4]# vi Makefile,
VERSION = 2
PATCHLEVEL =
4
SUBLEVEL = 20
EXTRAVERSION = -8custom
將「EXTRAVERSION =
-8custom」改為「EXTRAVERSION = -8」
即:
VERSION = 2
PATCHLEVEL =
4
SUBLEVEL = 20
EXTRAVERSION = -8
為何要修改呢?因為不同版本的內容是不可以使用的,當不修改時,則變成這個版本(2.4.20-8custom)了,不同時是這樣出錯的:
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o:
kernel-mole version mismatch (版本錯誤)
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o was compiled for
kernel version 2.4.20-8custom
while this kernel is version
2.4.20-8.
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o:
insmod /lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o
failed
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipt_iprange.o: insmod
ipt_iprange failed
3. [root@kindgeorge linux-2.4]# make mrproper
4.
[root@kindgeorge linux-2.4]# make oldconfig
'make oldconfig' - 採用以前的
.config 文件 (編譯時十分有用)
技巧:在make
menuconfig時,我們面對眾多的選項常常不知道該如何選擇,此時可以把安裝時的配置文件到/usr/src/linux-2.4中:cp
/boot/config-2.4.* /usr/src/linux-2.4/.config,再用make
menuconfig編譯,它會讀取.config中原來的配置信息.
(二).給netfilter打補丁
解開tar xjvf
patch-o-matic-ng-20050331.tar.bz2
包後,進入該目錄,就會發現有很多目錄,其實每個目錄對應一個模塊.
我們可以這樣來選擇,根據不同貯倉庫submitted|pending|base|extra,例如:
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme base
.
或:KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1
./runme extra
執行後,會測試是否已經應用和提示你是否應用該模塊,但這樣會遍歷所有模塊,有很多是用不著的,並且可能和系統版本有沖突,如果不管三七二十一全部選擇的話,一般都會在編譯和使用時出錯.所以推薦用cat
/模塊目錄名/info 和cat /模塊目錄名/help 看過後,認為適合自己,才選擇.
我是針對在上面看過後,有目的的一個一個的應用的,這樣做:
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme string
執行後,會測試是否已經應用和提示你是否應用該模塊,按"y"應用.然後繼續下一個
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme
comment
KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1
./runme connlimit
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme
time
KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1
./runme iprange
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme
geoip
KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1
./runme nth
KERNEL_DIR=/usr/src/linux-2.4
IPTABLES_DIR=/usr/src/iptables-1.3.1 ./runme
ipp2p
KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.1
./runme quota
上面全部完成後,
cd /usr/src/linux-2.4
make menuconfig,確認
Prompt for development and/or incomplete code/drivers要選中
然後進入Networking
options
再進入IP:Netfilter
Configuration,會看到增加很多模塊,每個新增的後面都會出現"NEW",把其想要的選中為模塊"M"
保存、退出,至此,給netfilter打補丁工作完成
(三).編譯netfilter模塊
1.這里只需要編譯netfilter,不需要編譯整個內核和模塊.這里我只需要ipv4的,ipv6我還沒用到,所以不管了
cd
/usr/src/linux-2.4
make dep
make moles
SUBDIRS=net/ipv4/netfilter
2.建立一個新目錄備份原來模塊,以防萬一:
mkdir
/usr/src/netfilter
cp /lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/*.o
/usr/src/netfilter/
3.應用新的模塊
cp -f
/usr/src/linux-2.4/net/ipv4/netfilter/*.o
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/
4.更新你的moles.dep
depmod
-a
當出現這個時,可以不用理會,因為ipchains, ipfwadm模塊都沒用,也可以把出錯的刪除.
depmod: ***
Unresolved symbols in
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipchains_core.o
depmod: ***
Unresolved symbols in
/lib/moles/2.4.20-8/kernel/net/ipv4/netfilter/ipfwadm_core.o
(四).編譯安裝新的iptables
解壓後有目錄iptables-1.3.1
cd
/usr/src/iptables-1.3.1
export KERNEL_DIR=/usr/src/linux-2.4
export
IPTABLES_DIR=/usr/src/iptables-1.3.1
make BINDIR=/sbin LIBDIR=/lib
MANDIR=/usr/share/man install
㈨ 求教關於Linux的C++中fscanf輸出string類型的字元串的問題
%s對應的是字元數組……而且是以空格,\t,換行為分界的,所以
輸入的時候應該用
char tmp[105];
while(fscanf(fp, "%s", tmp))
{
string str(tmp);
sztime.mtime += str;
}