Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
檔案與目錄的管理
|
295
複製
有些人可能會感到驚訝,Unix 並未對檔案和目錄的複製提供任何的系統或程式庫呼叫。
事實上,我們可以使用公用程式,例如
cp
GNOME 的檔案管理程式,自己動手來完
成這些工作。
把一個檔案
src
複製成一個名為
dst
的檔案,步驟如下:
1. 開啟
src
2. 開啟
dst
,如果它尚不存在,則建立它,如果它已經存在,則將它截短成零長度。
3.
src
的一個團塊讀進記憶體。
4. 把這個團塊寫入
dst
5. 繼續下去,直到
src
的所有內容已經被讀取,並且被寫入
dst
6. 關閉
dst
7. 關閉
src
如果複製一個目錄,則會經由
mkdir()
建立該目錄以及任何的子目錄;然後個別複製其
中每個檔案。
移動
不同於複製檔案,Unix 為檔案的移動提供了一個系統呼叫。ANSI C 標準為檔案的移動
引進了這個呼叫,而 POSIX 則針對檔案與目錄的移動將這個呼叫標準化:
#include <stdio.h>
int rename (const char *oldpath, const char *newpath);
執行成功時,
rename()
會把路徑名稱
oldpath
更名為
newpath
。檔案的內容與 inode 則維
持不變。
oldpath
newpath
必須位於相同的檔案系統
6
;否則,此呼叫將執行失敗。
mv
之類的公用程式必須藉由複製以及移除連結來處理此情況。
執行成功時,
rename()
會傳回
0
,檔案從前參照自
oldpath
而現在參照自
newpath
。執行
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812