zero和null及sparse檔案

2021-06-18 02:21:29 字數 1375 閱讀 4231

該文件主要是介紹/dev/zero和/dev/null。

1. /dev/zero

正如我們所知道的,這是0的「發源地」。在hp-ux 10.30以後,就可以使用該檔案了。對於hp 11.00和更早的作業系統,這個檔案不是預設就有的,需要手工建立:

#mknod /dev/zero c 3 4 /dev/zero

大部分時候,/dev/zero作如下作用:

a. 清空檔案

#cp /dev/zero bigfile

b. 作dd的時候用

#time dd if=/dev/zero of=6g bs=1024k count=$((6*1024))

通過使用/dev/zero,我們能得到如下的好處:

a. 目標檔案全都是0,那麼在發生crash之類的時候,我們就很容易來檢查檔案是否發生了變化。例如如果沒有任何錯誤,那麼"#xd 6g"這個命令就會簡單得返回三行。

b. 因為/dev/zero是乙個核心裝置檔案,那麼從/dev/zero讀取,不會產生任何的物理i/o,這在做performance troubleshooting的時候就非常重要了。

2. /dev/null

/dev/null是unix系統中很神奇的乙個功能,他是任何資料的墳墓,任何寫入其中的資料都將被忽略掉。這在做i/o測試的時候非常重要。

我們常常要用到如下的測試:

a. #fbackup -f - -i /usr | cat - >/dev/null

測試fbackup的讀取是否正常。

b. #(tar cf /dev/null /usr &);sar -d 1 5

測試tar的performance

c. #(time dd if=bigfile of=/dev/null bs=1024k&);sar -d 1 10

測試讀的performance,而沒有牽涉到任何的物理寫的動作。

/dev/null也給程式開發帶來很多好處,一些不需要的資訊,都被丟棄到/dev/null。因此,如果/dev/null檔案被刪除了,或者是/dev/null檔案的許可權改變了,那麼一些工具將不能正常的工作。

3. sparse檔案

sparse檔案充滿了「空洞」,它僅僅占用很少的儲存空間。例如,它用8k來代表6gb的sparse檔案。

#echo | dd of=6g bs=1024k oseek=$((6*1024))

#ll 6g

-rw-rw-rw- 1 root sys 6442450945 may 31 15:13 6g

#du -ks 6g

8 6g

這個檔案在你要測試是否有大檔案限制的時候,非常有用,它給你節省了很多i/o和時間。

#time fbackup -f - -i 6g | cat - >/dev/null

undefined 和 null 區別及用法

null是乙個表示 無 的物件,轉為數值時為0 表示乙個值被定義了,定義為 空值 undefined是乙個表示 無 的原始值,轉為數值時為nan 表示根本不存在定義 var a null number a 0 var b undefined number b nan典型用法 1 作為函式的引數,表示...

c語言NULL和0區別及NULL詳解

首先,我們測試乙個程式 includeint main 輸出,單步除錯可以看出執行int p null,p的值為0x00000000,可以看出,null在實際底層呼叫中就是0 在c語言中,null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值 對於字串的結...

SQL語句查詢是否為空 null及null

a b c d 980515 精頂企業 簡家豪 null 980514 全欣木業 null 123 980514 迅億科技股份 簡逢浚 null 980515 聖越國際企業 null 111 表結構如上所示,要查詢c列為空的記錄的 語句不是select from table where c null...