華清遠見嵌入式學習day14 檔案IO

2021-09-14 00:01:15 字數 2533 閱讀 7465

檔案io

開啟-》操作-》關閉        

開啟檔案,獲取檔案描述符

#include

#include

#include

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode);

功能:開啟檔案,獲取檔案描述符

引數:pathname    檔案的路徑

flags     o_rdonly   唯讀  

o_wronly   只寫

o_rdwr     可讀可寫

以上三者關係:互斥

int close(int fd);

功能:關閉檔案

引數:fd   檔案描述符

返回值:成功0 失敗-1    

系統預設開啟了三個檔案描述符

0             1           2

標準輸入   標準輸出   標準出錯

讀寫#include

ssize_t read(int fd, void *buf, size_t count);

功能:從檔案描述符中讀

引數:fd  檔案描述符

buf 讀到的資料的存放位置

count 期望讀到的位元組數

返回值:成功讀到的位元組數(0代表到達檔案結尾)  失敗-1

#include

ssize_t write(int fd, const void *buf, size_t count);

功能:向檔案描述符中寫

引數:fd  檔案描述符

buf  要寫的內容

count 期望寫的位元組數

返回值:成功實際寫入的位元組數(0代表什麼也沒有寫)   失敗-1

練習:使用檔案io實現檔案的拷貝    

1.open 兩個檔案,注意引數

2.迴圈讀寫

3.close

檔案io的偏移和定位    

#include

#include

off_t lseek(int fd, off_t offset, int whence);

功能:檔案io的偏移和定位

引數:fd  檔案描述符

offset   偏移量

whence  seek_set   開頭位置

seek_cur   當前位置

seek_end   結尾位置

返回值:成功返回偏移量   失敗-1

獲取檔案的資訊(屬性)

#include

#include

#include

int stat(const char *path, struct stat *buf);

int fstat(int fd, struct stat *buf);

int lstat(const char *path, struct stat *buf);

功能:獲取檔案的資訊

引數:path   檔案的路徑

buf    存放獲取的資訊

返回值:成功0    失敗-1

stat   如果檔案是鏈結檔案,它獲取的是目標檔案的資訊

lstat  如果檔案是鏈結檔案,它獲取的是鏈結檔案的資訊

struct stat ;

char *ctime(const time_t *timep);

功能:實現時間的轉換

引數:時間的秒數

返回值:成功返回乙個字串,失敗null

#include

#include

struct group *getgrgid(gid_t gid);

功能:通過組id獲取組的資訊

引數:gid   組id

返回值:成功返回資訊結構體指標,失敗null

#include

#include

struct passwd *getpwuid(uid_t uid);

功能:通過使用者id獲取使用者資訊

引數:uid   使用者id

返回值:成功返回資訊結構體指標,失敗null

目錄相關操作

#include

#include

dir *opendir(const char *name);

功能:開啟乙個目錄,獲取目錄流

引數:name  目錄的路徑名

返回值:成功返回目錄流,失敗null

#include

#include

int closedir(dir *dirp);

功能:關閉目錄流

引數:dirp  要關閉的目錄流

返回值:成功0 失敗-1

#include

struct dirent *readdir(dir *dirp);

功能:讀目錄

引數:dirp    目錄流

返回值:成功返回結構體指標,失敗返回null

struct dirent ;

華清遠見嵌入式學習day20 UDP

atoi 將字串轉化為整數 struct sockaddr in serveraddr 終端輸入去 n fgets buf,sizeof buf stdin buf strlen buf 1 0 吃點 n 獲取客戶端ip位址和埠號 struct sockaddr in clientaddr acce...

華清遠見嵌入式培訓 所言非虛!

我起先也是不信的,但是最後的相信卻讓我在2019年的就業洪流中站穩了腳跟。不得不說,嵌入式培訓的學習過程,就像一條又一條正太曲線的首尾無縫鏈結。從沒有興趣到興趣盎然。大部分同學,在這苦悶的房間裡都找到了一點知識的趣味性。學了這個面試能不能底氣足一些?能的!幾近全部同學在四個月苦悶但是有趣的學習時間過...

作者 王姍姍,華清遠見嵌入式學院講師。

先來了解下什麼是標準 以及檔案 標準 標準i o是ansi c建立的乙個標準i o模型,是乙個標準函式包和stdio.h標頭檔案中的定義,具有一定的可移植性。標準io庫處理很多細節。例如快取分配,以優化長度執行io等。標準的io提供了三種型別的快取。1 全快取 當填滿標準io快取後才進行實際的io操...