C語言 底層IO lseek

2021-10-01 18:31:44 字數 834 閱讀 4255

read和write操作後,檔案的position會改變

stream使用fseek,descriptor使用lseek

根據檔案描述符改變檔案的positon

#include

#include

off_t lseek

(int fd, off_t offset,

int whence)

;

引數

引數|描述

–|--

filedes|檔案描述符

offset|偏移量

whence|seek_set, seek_cur, or seek_end.

返回:成功:返回到開始的長度

失敗:-1設定errno

char buf[

256]

;int fd =

open

("./test.txt"

,o_rdwr)

;write

(fd,buf,ret)

;lseek

(fd,0,

seek_set);

//將偏移移動到檔案頭

int ret =

read

(fd,buf,

sizeof

(buf)

);

拓展檔案

lseek

(fd,0,

seek_set);

//將偏移移動到檔案頭

write

(fd,

"a",ret)

;

參考:

C語言底層函式

在linux系統中如果用 標準庫函式fopen,fwrite 他們會快取,如果在併發處理時,快取資料會造成資料不一致 一般用底層函式 read,write 在乙個程序中,開啟另乙個程序,system 函式是執行完命令 如果後台執行命令,就直接執行下面的 然後再輸出後台命令 再執行這個程序下面的 ex...

c語言的底層操作方法

1.函式名 setvbuf 功 能 把緩衝區與流相關 用 法 int setvbuf file stream,char buf,int type,unsigned size 引數 stream 指向流的 指標 type 期望緩衝區的型別 iofbf 滿緩衝 當緩衝區為空時,從流讀入資料。或者當緩衝區...

c語言函式呼叫原理底層分析

1函式的功能主要是為了復用性,不同的屬性可以引數化 2函式呼叫機制 2.1按呼叫約定傳遞引數 2.1呼叫約定 呼叫方 caller 和被調方 callee 需要約定以下內容 1傳參順序 2傳遞引數的媒介 是放棧還是暫存器 3清理引數的責任歸屬 4返回值的傳遞媒介 返回值是放棧還是暫存器 cdecl ...