程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linux編程-回憶錄二,linux編程回憶錄

Linux編程-回憶錄二,linux編程回憶錄

編輯:關於C語言

Linux編程-回憶錄二,linux編程回憶錄


====文件IO====
Linux系統IO操作都是使用文件描述符來代表打開的文件,一個非負的的
整數,它被用來指所有類型的打開的文件,包括管道,FIFO,網絡套接
字,終端,設備和一般文件。每個進程都有自己的一套文件描述符

經常使用的三個文件描述符是:
標准輸入(stdin,  STDIN_FILENO,  0)
標准輸出(stdout, STDOUT_FILENO, 1)
標准錯誤(stderr, STDERR_FILENO, 2)

#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags, ... /* mode_t mode */);
打開一個文件,返回文件描述符,失敗返回-1,並設置errno值
pathname表示文件路徑, flags表示訪問權限, mode表示設置文件的權限

flags的值通常如下所示的組合:
O_RDONLY    只讀打開
O_WRONLY    只寫打開
O_RDWR      讀寫打開
...

#include <unistd.h>
ssize_t read(int fd, void *buffer, size_t count);
從文件讀取最多count個字節到buffer中,成功返回讀取的字節數,0表示文件讀到
結尾EOF,-1表示出錯了

#include <unistd.h>
ssize_t write(int fd, void *buffer, size_t count);
從buffer中取出count個字節,寫入fd對應的文件中,返回實際寫入的
字節數,-1表述錯誤

#include <unistd.h>
int close(int fd);
關閉文件,0成功,-1失敗

#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
改變文件的偏移量,offset相對whence的偏移量,成功返回新的偏移量,-1錯誤
偏移量:表示文件讀/寫到了哪個位置
whence的值:
    SEEK_SET(文件開頭)
    SEEK_CUR(當前偏移)
    SEEK_END(文件結尾)

#include <sys/ioctl.h>
int ioctl(int fd, int request, ... /* argp */);
IO通用操作接口,操作類型繁多,具體可以查閱幫助手冊,返回值依賴request,-1錯誤

#include <fcntl.h>
int fcntl(int fd, int cmd, ...);
操作文件的屬性,錯誤返回-1,可以獲取或是設置文件的各種屬性

#include <unistd.h>
int dup(int oldfd);
拷貝文件描述符,返回一個沒有使用的最小文件描述符,錯誤返回-1值

#include <unistd.h>
int dup2(int oldfd, int newfd);
拷貝oldfd文件描述符為newfd文件描述符,如果newfd已經被
使用了,首先關閉它

#include <stdlib.h>
int mkstemp(char *template);
使用文件模版路徑創建一個臨時文件,路徑後6個字節必須為XXXXXX,創建
保證原子行,錯誤返回-1值

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved