歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux 庫函數實現文件操作

1. Linux系統調用,文件的描述符使用的是一個整數,庫函數訪問文件使用FILE類型的指針去指向描述文件;

2. 庫函數不隨系統平台而變,即不管win還是Linux都適用;

 

庫函數 - 讀文件

size_t fread(void *ptr, size_t size, size_t n, FILE *stream)

功能:從stream指向的文件中讀取n個字段,每個字段為size字節,並將讀取的數據放入ptr所指向的字符數組中,返回實際已讀取的字節數。(讀出來的數據量為size*n)

 

庫函數 - 寫文件

size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)

功能:從緩沖區ptr所指向的數組中把n個字段寫到stream指向的文件中,每個字段長為size個字節,返回實際寫入的字段數。

 

庫函數 - 創建和打開

FILE *fopen(const char *filename, const char *mode)

filename:打開的文件名(包含路徑,缺省為當前路徑)

mode:打開模式

#include <stdio.h>

#include <stdlib.h>

 

int main()

{

FILE *fp;

char ch;

char fname[30];

 

printf("Please input the file name:");

scanf("%s", &fname);

fp=fopen(fname, "r"); //以只讀方式打開

if(fp==NULL){ //打開失敗

printf("Open failed.\n");

exit(1);

}

while((ch=getc(fp))!=EOF) //一個字符一個字符遍歷

{

putchar(ch); //輸出ch傳入的字符

}

fclose(fp); //關閉文件

return 0;

}

 

讀字符:

fgetc 獲取字符:

fputc 輸出字符:

#include <stdio.h>

#include <string.h>

 

int main()

{

char msg[] = "Hello, linuxdba";

// int i;

FILE *fp;

char ch;

fp = fopen("/etc/passwd", "r");

while ((ch = fgetc(fp)) != EOF)

//while (msg[i]&&(i < strlen(msg))) // ok,pass!

{

fputc(ch, stdout); //什麼意思?

// i ++;

}

fclose(fp);

return 0;

}

路徑獲取

char *getcwd(char *buffer, size_t size)

功能:提供一個size大小的buffer,getcwd會把當前的路徑名拷貝到buffer中。如果buffer太小,函數會返回-1.

Copyright © Linux教程網 All Rights Reserved