檔案IO操作

2021-08-07 15:27:23 字數 1426 閱讀 3161

在對乙個檔案或者裝置進行讀寫之前,都需要先開啟,以獲得該檔案或者裝置的操作指標,也就是檔案描述符。有了檔案描述符,後續就可以進行讀取,修改操作了。

標頭檔案函式宣告

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

返回值成功:返回檔案描述符;失敗:-1

標頭檔案函式宣告

int close(int fd);

返回值成功:0;失敗:-1

標頭檔案函式宣告

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

返回值成功:返回讀取的字元數,0表示讀取到檔案結束位置;失敗:-1

標頭檔案函式宣告

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

返回值成功:返回讀取的字元數,0表示讀取到檔案結束位置;失敗:-1

標頭檔案函式宣告

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

返回值成功:返回寫入的字元數;失敗:-1

#include 

#include

#include

#include

#include

using

namespace

std;

#define buf_size 1024

#define max_file_len 256

int main(int argc, const

char * argv) ;

if (argc < 2)

//開啟原始檔

int in_fd = open(argv[1], o_rdonly, 0777);

if (-1 == in_fd)

//開啟目標檔案

char destfile[max_file_len] = ;

snprintf(destfile, max_file_len, "%s_bak.txt", argv[1]);

printf("write to file %s\n", destfile);

int out_fd = open(argv[1], o_wronly|o_creat, 0777);

if (-1 == out_fd)

//讀原始檔

size_t rd_num;

while((rd_num = read(in_fd, buffer, buf_size)) > 0)

buffer[rd_num] = '\0';

printf("%s", buffer);

}//關閉檔案

close(in_fd);

close(out_fd);

return

0;}

檔案操作IO

dup oldfd 和dup2 oldfd,newfd 這兩個函式我們可以用來複製檔案描述符。1 其中oldfd和newfd分別是複製前檔案描述符和複製後的檔案描述符。2 這兩個函式的呼叫都將複製檔案描述符oldfd,且他們的返回值都為新的檔案描述符。3 不同點是dup 的返回值是最小的未用檔案描述...

IO操作 檔案IO

一 系統呼叫 系統呼叫實際上是作業系統 核心 提供的供使用者使用的介面函式。二 標準io函式和檔案io函式的關係 標準io是c庫內定義的函式,是凌駕於系統之上的,適用於任何的作業系統 檔案io是由linux系統提供的,只能在linux系統中使用,而不可以在其它作業系統中使用。標準io函式可以呼叫檔案...

檔案IO操作讀寫檔案

寫操作對應的有 put write等。寫操作的型別 ascii碼型別的可知字串 put put只能寫入一兩個字元,多了寫不了 include using namespace std intmain int args,char ar 二進位制型別寫檔案 write include using name...