STEP4。標準1日目のファイルIOとIO

標準IO:ANSI Cは、IO操作のための一連の機能を定義した(のみ通常のファイルにアクセスすることができます)

知識ポイント:ストリームポインタ:ファイル操作、通常、標準IO構造ファイルを介して、構造を言ってはストリームである、彼のポインタと呼ばれるストリームポインタ(システムに自動的にオープンストリーム:標準入力と標準出力標準出力、標準入力、標準誤差標準エラー出力)、完全にバッファ、ラインバッファリングされ、バッファなしにfflush

関連する関数:関数fopen fcloes perrorはstrerrorをfgetc関数/ FPUTCのfgets / fputs GETCHAR /のputchar取得/置きにfread / fwriteのfseekを(あなたが作成されたファイルのサイズを指定することができます)巻き戻しFTELL fscanfはsscanf関数fprintfのはsprintfやferror feofを

時間のlocaltime関数ctimeスリープ  

IOファイル:低レベルのディスクIO、バッファなしモードは、POSIX標準に従って、あなたは他のタイプのファイルにアクセスすることができます

知識ポイント:ファイルディスクリプタ、およびストリームポインタ同様に、整数はこの文書を記述する

関連機能:閉じる読み書きのlseekを開きます 

ディレクトリの操作に関連する関数:pendirのreaddir closedirのchmodのfchmodのstatにfstat getpwuid getgrpid

覚えているの使用で、男を見ながら手動でプログラミングしながら、それを放棄する、のように多くの基本的な機能を覚えていません。

コード:ファイルコピーの4つのモード

1.文字をコピーします。


書式#include <stdio.hに>

INTメイン(int型ARGC、CONSTのchar *のARGV [])
{
IF(ARGC <3){
のprintf( "Usmsg:%S <SRC_FILE> <des_file> \ n"は、ARGV [0])。
-1を返します。
}
FILEの*のFPS、* FPD。
IF((fpsの=用のfopen(ARGV [1]、 "R"))== NULL){
perrorは( "SRC_FILEのfopen")。
-1を返します。
}
((FPD =のfopen(ARGV [2]、 "W +"))== NULL){場合
にperror( "des_fileのfopen")。
-1を返します。
}

文字chを、
(!(CH = fgetc関数(FPS))= -1){一方
FPUTC(CH、FPD)。
}

FCLOSE(FPS)。
FCLOSE(FPD)。
0を返します。
}

2.行をコピー


書式#include <stdio.hに>


#define N 32

INTメイン(int型ARGC、CONSTのchar *のARGV [])
{
IF(ARGC <3){
のprintf( "USRMSG:%S <ファイル名> <ファイル名> \ n"は、ARGV [0])。
-1を返します。
}
FILEの*のFPS、* FPD。
IF((fpsの=用のfopen(ARGV [1]、 "R"))== NULL){
perrorは( "SRCのfopen")。
-1を返します。
}
((FPD用=用のfopen(ARGV [2]、 "W"))== NULL){場合
にperror( "12月のfopen")。
-1を返します。
}
チャーBUF [N]。
(!関数fgets(BUF、N、FPS)= NULL){一方
fputs(BUF、FPD)。
}
FCLOSE(FPS)。
FCLOSE(FPD)。


0を返します。
}

オブジェクト3.コピー


書式#include <stdio.hに>

INTメイン(int型ARGC、CONSTのchar *のARGV [])
{
IF(ARGC <3){
のprintf( "USRMSG:%S <ファイル名> <ファイル名> \ n"は、ARGV [0])。
-1を返します。
}

FILEの*のFPS、* FPD;
IF((fpsの=用のfopen(ARGV [1]、 "R"))== NULL){
perrorは( "SRCのfopen")。
-1を返します。
}
((FPD用=用のfopen(ARGV [2]、 "W"))== NULL){場合
にperror( "DESのfopen")。
-1を返します。
}

チャーBUF [64]。
int型のn;
一方、((N =のfread(BUF、1,64、FPS))> 0){
関数fwrite(BUF、1、nは、FPD)。
}

FCLOSE(FPS)。
FCLOSE(FPD)。

0を返します。
}

4.ファイルIOをコピーします。


する#include <stdio.hに>
する#includeは<sys / types.h>に
する#include <SYS / stat.h>
の#include <fcntl.h>


INTメイン(int型ARGC、CONSTのchar *のARGV [])
{
IF(ARGC <3){
のprintf( "USRMSG:%S <ファイル名> <ファイル名> \ n"は、ARGV [0])。
}

int型FDS、FDD、N。
チャーBUF [64]。

((FDS =オープン(ARGV [1]、O_RDONLY))== -1){場合
にperror( "opensrc")。
-1を返します。
}
IF((FDD =オープン(ARGV [2]、O_WRONLY | O_CREAT | O_TRUNC、0666))== -1){
perrorは( "opendes")。
-1を返します。
}

一方、((N =読み取る(FDS、BUF、64))> 0){
ライト(FDD、BUF、N)。
}
近い(FDS)。
クローズ(FDD)。

0を返します。
}

 

おすすめ

転載: www.cnblogs.com/huiji12321/p/11293697.html