嵌入式系統設計學習周記 嵌入式檔案程式設計

2021-10-04 15:27:30 字數 3728 閱讀 8337

嵌入式linux系統開發

通過核心提供的服務實現相應功能

1.linux系統構成

使用者空間和核心空間

2.分為使用者空間和核心空間的作用

保護核心的訪問安全,使用者不能隨便訪問核心空間

3.系統呼叫

核心提供的安全訪問機制,使使用者空間可以訪問核心空間並獲取服務

4使用者如何傳送系統呼叫

呼叫系統提供的函式介面——api(使用者程式設計介面)

學習嵌入式linux系統開發實際上學習的是使用者程式設計介面api

檔案操作、程序,執行緒操作(多工)、網路、裝置

檔案描述符——檔案aid

①動態分配(從3開始)——只有當操作這個檔案時,系統才會分配檔案描述符

②非負整數,0,1,2三個檔案描述符有其他作用

creat函式

使用create函式時要加上標頭檔案

#include #include #include
int creat(const char *pathname, mode_t mode);//函式名、形參、返回值

mode型別

s_irusr  00400 user has read permission

s_iwusr 00200 user has write permission

s_ixusr 00100 user has execute permission

s_irwxg 00070 group has read, write, and execute permission

s_irgrp 00040 group has read permission

s_iwgrp 00020 group has write permission

s_ixgrp 00010 group has execute permission

#include

#include

#include

#include

#include

#include

intmain()

int fd =

creat

("hello.txt"

,0655);

//函式名、形參、返回值

//errno:系統全域性變數 儲存系統呼叫的錯誤值

if(fd ==-1

)printf

("creat file error!\n");

perror

("creat file error!");

//自動換行,列印的系統的錯誤資訊

exit(1

);}printf

("fd = %d\n"

,fd)

; close (fd)

;return0;

}

perror:輸出錯誤資訊,自動換行

open函式

使用open函式時要加上標頭檔案

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

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

#include

#include

#include

#include

#include

#include

intmain()

printf

("fd = %d\n"

,fd)

; close (fd)

;return0;

}

write函式

使用write函式時要加上標頭檔案

#include
write(int fd, const void *buf, size_t count);//把buf中count長度的內容寫入fd

#include

#include

#include

#include

#include

#include

intmain()

printf

("fd = %d\n"

,fd)

;char buffer[

1024]=

"hello world"

;int w_len =

write

(fd,buffer,

strlen

(buffer));

if(w_len ==-1

)printf

("write data len = %d\n"

,w_len)

; close (fd)

;return0;

}

read函式

使用read函式時要加上標頭檔案

#include
read(int fd, void *buf, size_t count);把fd中count長度的內容讀入buf

#include

#include

#include

#include

#include

#include

intmain()

printf

("fd = %d\n"

,fd)

;char buffer[

1024]=

"hello world"

;int w_len =

write

(fd,buffer,

strlen

(buffer));

if(w_len ==-1

)printf

("write data len = %d\n"

,w_len)

; off_t pos =-11

;int size =

lseek

(fd,0,

seek_end);

//測量檔案的大小

printf

("size = %d\n"

,size)

;lseek

(fd,0,

seek_set);

memset

(buffer,0,

sizeof

(buffer));

int r_len =

read

(fd,buffer,

sizeof

(buffer));

printf

("read data = %s\n"

,buffer)

;close

(fd)

;return0;

}

將fd中的內容逐行讀入buffer中
int

read_line

(int fd,

char

*buffer,

int max_len)

if(r_len ==0)

if(temp ==

'\n'

) buffer[i]

= temp;

}return i;

}

嵌入式系統設計學習周記 擴充套件作業

lost found 只允許root 及所屬者讀取建立進入,任何要恢復的檔案都儲存在該目錄下。mnt 系統提供這個目錄是讓使用者臨時掛載別的檔案系統。opt 為所有不屬於預設安裝的軟體和附加包保留的目錄。proc 乙個虛擬的目錄,它是系統記憶體的對映,可以通過直接訪問這個目錄來獲取系統資訊。seli...

嵌入式系統設計學習周記 網路程式設計

為什麼需要網路通訊 程序間通訊解決的是本機內通訊 網路通訊解決的是任意不同機器通訊 實現網路通訊需要哪些支援 通訊裝置 通訊協議 tcp ip協議棧 osi七層網路模型 linux四層網路模型 協議棧為什麼要分層 ip位址 實際上是32位二進位制數 公網ip 廣域網通訊 私網ip 區域網通訊 子網掩...

嵌入式系統設計

嵌入式系統 embedded system 是一種 嵌入機械或電氣系統內部 具有專屬功能的計算機系統 通常要求實時計算效能。被嵌入的系統通常是包含硬體和機械部件的完整裝置。相反,通用計算機如個人計算機則設計靈活,以滿足廣大終端使用者的需求。現在常見的很多裝置都採用嵌入式系統控制。現代嵌入式系統通常是...