Linux程式設計學習三

2021-04-01 02:14:36 字數 2179 閱讀 3990

在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...