arm-linux学习笔记3-linux内存管理与文件操作
配置好linux系統之后需要vim配置一下,有助于我們的編程,主要的配置如下
在/etc/vim/vimrc文件中
"顯示行號
set number
"自動縮進
set autoindent
"智能縮進
set smartindent
"一次四格 tab
set tabstop=4
"一次四格
set shiftwidth=4
"括號匹配
set showmatch
"右下角顯示光標狀態行
set ruler
"文件類型檢測
filetype on
?
基本上這些配置就好了
內存管理基本上就是內存的申請,內存的釋放,已經申請的內存大小調整這些函數,如下使用
?
malloc 用于申請內存
free 用于釋放內存
calloc 申請一塊內存,同時初始化這一塊內存
realloc原來的內存大小不對,現在申請一塊新的內存,同時先釋放掉原來的內存
?
?
文件系統
Linux文件系統支持兩種,一種是系統調用的編程,還有一個是標準庫的編程,先說標準庫
在linux ascii編程中,文件的表示是文件指正FILE*類型
setbuf函數可以設置緩沖區大小,參數是文件指針和緩沖區
setvbuf 設置緩沖的大小,緩沖的模式
3._IOFBF全緩沖?? _IOLBF行緩沖? _IONBF無緩沖
4.文件的打開和關閉
fopen 打開帶模式 r讀 w wb 寫并清空 rb+讀寫打開 w+寫并清空
fclose 關閉文件
?
讀文件
getc 讀取一個字節,失敗或者到末尾返回EOF
fgetc 和前一個一樣
getchar 從標準輸入讀入一個字節
?
putc
fputc 寫入一個字節
putchar 向標準輸出寫入一個字節
?
fgets 從文件中讀取一行
gets 從標準輸入讀取一行
?
fputs 向文件中寫入一行字符串,終止符必須是nil
puts 向標準輸出輸出一行
?
fread 讀取一塊 參數是緩沖區指針 數據塊大小 數據塊數量 文件指正
fwrite 寫入一塊 參數類似,只是動作變成了寫入
?
文件定位
fseek 參數為文件指針 定位偏移 起始點
SEEK_CUR 當前位置 SEEK_END文件結尾 SEEK_SET文件開頭
ftell 該函數也是文件定位,只是依靠文件指正參數中的數據來定位
rewind 將文件指正設置為最開始位置
?
?
第二種文件編程為系統調用 posix調用
Posix調用對于每一個文件都有一個文件描述符,是一個整數,代表一個索引值,默認一個進程最多可以打開1024個文件
標準輸入文件描述符0 標準輸出 1 標準錯誤 2
文件的打開
首先使用posix需要包含文件
<sys/types.h>
<sys/stat.h>
<fcntl.h>
還有一個全局的變量errno
open 打開文件,文件路徑 打開標志 (打開同時創建還要制定文件權限)
標志包括o_rdonly o_wronly o_rdwr等
?
create 創建文件 目前不需要,直接使用open就可以創建
close 關閉文件,參數為文件標識符
?
讀寫文件內容
write
read
?
文件定位
lseek 參數與fseek基本一致,只是文件指針換成了文件標識符
修改已經打開的文件的屬性
fcntl 涉及到文件鎖的操作
?
轉載于:https://www.cnblogs.com/dengxiaojun/p/4559658.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的arm-linux学习笔记3-linux内存管理与文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unbuntu运行shell脚本的问题
- 下一篇: linux 其他常用命令