1. 程式人生 > >Linux系統程式設計---IO操作

Linux系統程式設計---IO操作

1.系統呼叫

系統呼叫效率較低
1.系統呼叫開銷大,要從使用者空間切換到核心空間,然後切換回使用者空間
2.系統呼叫與底層驅動相關,不一定能夠按指定一次寫完。

write函式

#include <unistd>​

size_t write(int files, const void  *buf, size_t nbytes );
返回值
 0:寫入位元組為0
​-1:寫入出錯了 錯誤儲存在全域性變數errno中
xx:實際寫入位元組數

read函式

size_t read(int files, const void  *buf, size_t nbytes );
返回值
 0:讀取位元組為0
​-1:讀取出錯了 錯誤儲存在全域性變數errno中
xx:實際讀取位元組數

open函式​

​#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int open(const char *path, int oflags)
int open(const char *path, int oflags, mode_t mode);

oflags

mode


返回值
非負整數:檔案描述符
-1:出錯

close函式

int close(int files)


程式執行時間及CPU使用率



lseek函式

#include <unistd>
#include <sys/types.h>(off_t 定義所在)

int lseek(int files, off_t offset, int whence )

whence

返回值
-1:設定失敗
xxx:返回偏移實際位元組數



2.標準庫函式


open函式

​#include <stdio.h>(NULL定義)
FILE * fopen( const char *path, const char *mode)
mode

返回值
非空:檔案流指標
NULL:開啟失敗

fread函式

size_t fread(void * ptr, size_t size, int nitems, FILE *stream)
size 指定記錄大小(單位位元組)
nitems 讀取記錄個數

返回值:
非零值:讀取到緩衝區的記錄數

fwrite函式

size_t fwrite(void * ptr, size_t size, int nitems, FILE *stream)
返回值:
非零值:寫到緩衝區的記錄數

fclose函式

int fclose(FILE *stream)

fflush函式

int fflush(FILE *stream)


fseek函式

int fseek(FILE *stream, long int offset, int whence)
返回值
-1:操作失敗
0:操作成功

fgetc、getc、getchar函式

int fgetc(FILE *stream)
int getc(FILE *stream)
int getchar()

getc可能被實現為巨集
getchar返回標準輸入流中一個字元
返回值
EOF:出錯或到檔案尾時
其他:讀取的位元組

fputc、putc、putchar函式

int fputc(int c, FILE *stream)
int putc(int c, FILE *stream)
int putchar(int c)
返回值
EOF:出錯
其他 :寫入的位元組

相關推薦

Linux系統程式設計---IO操作

1.系統呼叫 系統呼叫效率較低 1.系統呼叫開銷大,要從使用者空間切換到核心空間,然後切換回使用者空間 2.系統呼叫與底層驅動相關,不一定能夠按指定一次寫完。write函式 #include <unistd>​ size_t write(int files,

Linux系統程式設計——IO程式設計

1.Linux檔案操作   “一切皆檔案”是Linux系統的基本思想。Linux 提供的虛擬檔案系統為多種檔案系統和外設驅動提供了統一的介面,基於此類介面,可以實現檔案的新建、開啟(open)、讀(r

linux系統程式設計-檔案IO操作

四個主要的系統呼叫函式解釋 open() 函式可以開啟一個已經存在的檔案,也能建立並開啟一個檔案 #include <sys/stat.h> #include <fcntl

Linux高階程式設計基礎——檔案系統程式設計操作檔案屬性

檔案系統程式設計之操作檔案屬性 /編寫程式實現以下功能: 1.新建檔案,設定檔案許可權遮蔽字為0; 2.建立該檔案的硬連結檔案,列印硬連結檔案的inode節點號和檔案大小; 3.建立該檔案的軟連結檔案,列印軟連結檔案的inode節點號和檔案大小; 列印軟連結檔案中的內容; 4.列印原始檔

linux系統程式設計(二)--檔案操作

1.0    檔案描述符         每個程序啟動後會自動開啟三個檔案描述符 0、1、2             分別對應於巨集 STDIN_FIL

嵌入式 Linux系統程式設計(一)——檔案IO

嵌入式 Linux系統程式設計(一)——檔案IO一、檔案IO概念        linux檔案IO操作有兩套大類的操作方式:不帶快取的檔案IO操作,帶快取的檔案IO操作。不帶快取的屬於直接呼叫系統呼叫(

Linux系統程式設計-檔案IO(一)

最近在在實驗樓上學Linux,做點筆記。上面的課程對於學習linux還不錯,有興趣可以看看。 檔案IO: Linux提供給了使用者程式一些介面,用來呼叫執行相關的功能。大多數Linux檔案I\O只需

Linux系統程式設計學習筆記(1)-檔案的I/O操作

概述 在Linux系統下,通常以一個非負整數來代指一個開啟的檔案,這些檔案可以包括終端,socket,裝置,普通檔案等等。規定的三個標準的檔案描述符為0,1,2下面分別介紹(在互動式shell中,這些檔案描述符通常指向shell執行所在的終端): 檔案描述

Linux 系統程式設計學習-檔案I/O操作

一、非緩衝檔案操作 執行非緩衝檔案操作後,應用程式將立即獲取或傳送資料,非緩衝檔案操作的函式只有:read(),write()。 從檔案中將資訊講到到指定的記憶體區域中read(檔案識別符號,記憶體塊指標,記憶體塊長度); 返回值是實際讀取的長度,沒有讀取到資料返回0,錯誤

Linux系統程式設計——系統呼叫之 I/O 操作(檔案操作

一、檔案描述符 在 Linux 的世界裡,一切裝置皆檔案。我們可以系統呼叫中 I/O 的函式(I:input,輸入;O:output,輸出),對檔案進行相應的操作( open()、close()、write() 、read() 等)。 開啟現存檔案或新建檔案時,系統(核心

Linux系統程式設計:標準IO和檔案IO的區別

首先了解下什麼是標準IO以及檔案IO。 標準IO:標準I/O是ANSI C建立的一個標準I/O模型,是一個標準函式包和stdio.h標頭檔案中的定義,具有一定的可移植性。標準IO庫處理很多細節。例如快取分配,以優化長度執行IO等。標準的IO提供了三種類型的快取。

三、Linux系統程式設計-檔案和IO(一)檔案的開啟和關閉

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <stdio.h> #include <stdlib.h

Linux系統程式設計(4)——檔案與IO之ioctl函式

ioctl是裝置驅動程式中對裝置的I/O通道進行管理的函式。所謂對I/O通道進行管理,就是對裝置的一些特性進行控制,例如串列埠的傳輸波特率、馬達的轉速等等。它的引數個數如下:int ioctl(int fd, int cmd, …);其中fd就是使用者程式開啟裝置時使用ope

Linux系統程式設計—訊號集操作函式

先來回顧一下**未決訊號集**是怎麼回事。 訊號從產生到抵達目的地,叫作**訊號遞達**。而訊號從產生到遞達的中間狀態,叫作訊號的**未決狀態**。產生未決狀態的原因有可能是訊號受到阻塞了,也就是**訊號遮蔽字**(或稱阻塞訊號集,mask)對應位被置1。阻塞訊號集和未決訊號集均是由核心維護的,整個過程如下

LINUX系統---初級相關操作和知識

www mys apach lis -type cnblogs 管理 安裝linux系統 tomcat   LINUX系統的初級,從安裝LINUX開始,到處理簡單的運維問題、搭建各種服務、解決網路問題、緩解服務器壓力,寫簡單的shell腳本。   我們從基本的入門開始搞事情

LINUX系統---中級相關操作和知識

div blog pos one 相關 inux 公司 -type 熱備   LINUX系統的中級,來搞一些LINUX安全相關的東西,還有在公司生成中長搞的集群。 RHCS集群 什麽是高可用 什麽是熱備 什麽是分布式 LINUX系統---中級相關操作和知識

【我的Linux,我做主】Linux系統文件操作之cp、rm、mv詳解

Linux基礎知識 系統運維 對文本文件的操作非常基礎而且和重要,掌握它們後操作文本你會更加得心應手。要復制文件,請使用cp(copy)這個命令,cp這個命令的用途可多了,除了單純的復制之外,還可以建立建立快捷方式,對比兩個文件的新舊程度從而決定是否更新,以及復制整個目錄下的文件等功能。至於移動目錄和

linux系統的基本操作

linux 系統 基本操作 1)從命令行管理Linux主機中的文檔 ls、cat、mkdir、touch、cp、rm、mv2)從命令行創建/修改系統文件 vim3)從命令行管理用戶/組賬號練習1:瀏覽目錄和文件1. 查看目錄、查看文件屬性– 查看根目錄 / 下有哪些文檔或子目錄

Linux系統基礎-Linux系統文件操作常用命令

文件命令 常用命令 Linux基礎 系統命令 文件操作命令 touch:創建空文件或修改文件時間,命令所有路徑:/bin/touch/,命令權限:所有用戶,註意:touch也稱為觸摸,要是文件不存在,建立新文件。要是存在,會修改文件的最後修改時間 rm :刪除文件,命令所在路徑:/b

linux 系統 chmod 誤操作權限異常修復方式

oot 文件 修復 備份 使用命令 方式 誤操作 系統默認 修改 Linux 系統中如果意外誤操作將根目錄或系統默認關鍵目錄權限批量設置,比如 chmod -R 777 / ,系統中的大部分服務以及命令將無法使用,這時候可以通過系統自帶的 getfacl 和 setfacl