在linux中,任何裝置,檔案,目錄...都是以檔案的形式存放的。
1.比較重要的裝置檔案:
/dev/console 系統控制台,出錯和診斷資訊通常會被傳送到這裡
/dev/null 空裝置,所有寫向這個裝置的輸出都將被拋棄。
如: $ echo do not want to see this >/dev/null
$ cp /dev/null empty_file
2.系統底層訪問
#include
#include
write系統呼叫:
size_t write(int fildes, const void *buf, size_t nbytes);
fildes:檔案描述符
*buf: 緩衝區
nbytes: 位元組數
把緩衝區buf裡的前nbytes個位元組寫入與檔案描述符filds相關的檔案中去。
返回實際寫入的位元組數,返回0表示沒寫入,返回-1表示出錯
read系統呼叫:
size_t read(int fildes, const void *buf, size_t nbytess);
從檔案描述符fildes相關的檔案裡讀入nbytes個位元組的資料並把它放在資料區buf中去。
其他與write同。
open系統呼叫:
#include
#include
#include
int open(const char *path, int oflags);
int open(const char *path, int oflags, mode_t mode);
open建立一條到檔案或裝置的訪問路徑,返回乙個檔案描述符,供write和read呼叫。
mode中標誌位按or操作後得到的:
s_irusr,s_iwusr, s_ixusr...(usr,grp,oth);
如: open("myfile", o_creat, s_irusr | s_ixoth);
$ls -ls myfile
0 -r------x 1 song software 0 sep 21 06:34 myfile*
umask變數:對檔案的訪問許可權設定乙個掩碼。
close系統呼叫:
int close (int fildes);
ioctl系統呼叫:
int ioctl(int fildes,int cmd,...);
提供對裝置訪問等方面進行控制的操作介面。
lseek, fstat, stat, lstat, dup和dup2系統呼叫;
例子:#include
#include
#include
#include
int main()
3.標準i/o庫
#include
file *fopen(const char *filename, const char *mode);
size_t fread(void *ptr, size_t size, size_t nitems, file *stream);
size_t fwrite(const void *ptr, sizet size, size_t nitems, file *stream);
int fclose(file *stream);
int fflush(file *stream);
int fseek(file *stream, ong int offset, int whence);
.....
int printf(const char *format, ....);
int scanf(const char *format, ...);
int ferror(file *stream);
int feof(file *stream);
void clearerr(file *stream);
4.檔案和子目錄的維護
#include
int chmod(const char *path, mode_t mode);
int chown(const char *path, uid_t owner, gid_t group);
mkdir,rmdir,opendir,closedir,readdir,telldir,seekdir...
Linux學習(三) Linux程式設計基礎 下
庫顯示規則 開始的行,make程式會將其交給系統的shell程式去執行 hello hello.c gcc o hello hello.c 隱含規則 變數 舉例 指示符include指令 根據乙個變數的值決定處理或者忽略makefile中的某一特定部分 定義乙個多行變數 注釋 兩種形式 靜態庫 r ...
檔案I O程式設計學習筆記三(linux 時間程式設計)
linux 時間程式設計 時間型別 coordinated universal time世界標準時間 calendar time日曆時間 時間獲取 include time t time time t tloc 從1970年1月1日0時到現在經歷的秒數 時間轉換 日曆轉化為格林威治標準時間 stru...
學習程式設計(三)
1.有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以後用3...