トップ->C言語入門

あなたは

人目のC(C++)言語入門受講生です。

C言語入門内検索

目次
C言語入門〜トップ
C++言語入門〜トップ
0. はじめに

1. 基本的な決まり
   1. 書式
   2. 予約語
   3. 構成
   4. データの形と宣言
   5. 定数と変数
   6. 簡単な演算

2. 入出力
   1. printf
   2. scanf
   3. 練習問題1
   4. 1文字入出力
   5. エスケープシーケンス

3. 制御文
   1. 順次構造
   2. 単一分岐
   3. 多重分岐
   4. ケース構造
   5. 反復構造(while)
   6. 反復構造(do)
   7. 反復構造(for)
   8. 補助制御文
   9. 練習問題
   10.練習問題

4. 配列
   1. 配列とは
   2. 配列の宣言と初期化
   3. 配列の使用法
   4. 練習問題
   5. 文字列
   6. 2次配列と多次元配列
   7. 練習問題

5. 演算子
   1. 演算子の種類
   2. インクリメント演算子とデクリメント演算子
   3. 複合代入演算子
   4. ビット演算子
   5. シフト演算子
   6. キャスト演算子
   7. 順次演算子
   8. 条件演算子(三項演算子)
   9. sizeof演算子
   10.演算子の優先順位
   11.式と値
   12.条件式と値
   13.練習問題

6. ポインタ
   1. ポインタとは
   2. 配列とポインタ
   3. 文字列とポインタ
   4. ポインタのメリット

7. 関数
   1. 関数の作り方
   2. プロトタイプ宣言
   3. 配列とポインタ
   4. 値渡しとアドレス渡し
   5. main関数の引数
   6. 練習問題
   7. 標準関数
   8. 再帰関数

8. プリプロセッサ
   1. プリプロセッサとは
   2. #define, #undef
   3. #include
   4. #if
   5. #error、#warning
   6. マクロ
   7. 定義済みマクロ

9. 変数の有効範囲
   1. 変数の種類
   2. グローバル変数の有効範囲
   3. オート変数の有効範囲
   4. スタティック変数の有効範囲

10. 構造体
   1. 構造体とは
   2. 構造体の宣言
   3. 構造体の使用法
   4. 構造体のポインタ
   5. 構造体の構造体
   6. 構造体と関数
   7. 練習問題

11. 共用体
   1. 共用体とは
   2. 共用体の宣言
   3. 共用体の使用法

12. ファイル
   1. ファイル
   2. ファイル構造体
   3. ファイル作成・オープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. ファイルエラー
   8. ランダムアクセス
   9. 標準入出力
   10. 練習問題
   11. ファイルの検索
   12. ファイルの削除
   13. ファイル名変更
   14. ディレクトリ操作

13. 低水準入出力関数
   1. 高水準入出力関数との違い
   2. ファイル作成
   3. ファイルオープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. 標準入出力
   8. ランダムアクセス
   9. ファイルポインタとファイルディスクリプタ
   10. 練習問題

14. データ構造
   1. データ構造とは
   2. データ構造の種類
   3. 線形リスト
     4. 単方向リスト
     5. 双方向リスト
     6. 環状リスト
   7. ベクター
   8. 木
     9. 二分検索木
   10. スタック
   11. キュー

15 標準関数
   1. 文字分類・文字変換
   2. 文字列操作
   3. データ変換
   4. メモリー操作
   5. 数値演算
   6. ファイル操作(高水準入出力関数)
   7. ファイル操作(低水準入出力関数)
   8. プロセス関係

16 関数ポインタ
   1. 関数ポインタとは
   2. 関数ポインタ
   3. 関数ポインタと引数・戻り値
   4. 関数ポインタの配列

17. そしてその後は (PR)
   1. ヒューマンアカデミー C言語講座
   2. el school C言語講座
   3. C++入門


・ このページの先頭に戻る
・ トップページに戻る


・ このページの先頭に戻る
・ トップページに戻る

トップ-> C言語入門:標準関数-> 15-7. ファイル操作(低水準入出力関数)

←前ページへ :  トップへ :  次ページへ→


15-7.ファイル操作(低水準入出力関数)

  ここでは、ファイル操作関数を紹介します。詳しくは13章を参照してください。

  ここで紹介する関数を使用するためには、必要に応じて以下のヘッダーファイルを インクルードしてください。


	#include <io.h>
	#include <sys\stat.h>		 
	#include <sys\types.h>
	#include <stdlib.h>
	#include <errno.h>
	#include <string.h>
	#include <fcntl.h>
	#include <conio.h>

ファイル作成

関数名 creat
書式 int creat( const char* filename, int pmode );
戻り値 -1:エラー
その他:ファイルディスクリプタ
機能 第一引数の渡されたファイル名を
第二引数で渡されたモードでオープンする(作成する)
モード(第二引数) 動作
S_IREAD 読み込み専用モード
S_IWRITE 読み込み・書き込みモード
「S_IREAD」や「S_IWRITE」は「sys\stat.h」で定義されていますので、 このファイルをインクルードする必要があります。
エラーコード 意味
EACCES ファイル名に既存の読み出し専用ファイルを指定したか、またはファイルではなくディレクトリを指定しています。
EMFILE 開いているファイルが多すぎます
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


ファイルオープン

関数名 open
書式 int open( const char* filename, int oflag[, int pmode] );
戻り値 -1:エラー
その他:ファイルディスクリプタ
機能 第一引数の渡されたファイル名を
第二引数で渡されたモードでオープンする(作成する)
ただし、ファイル作成モードでは第三引数にファイル属性を指定する
モード(第二引数) 動作
O_RDONLY 読み込み専用モード
O_WRONLY 書き込み専用モード
O_RDWR 読み込み・書き込みモード
O_CREAT ファイルの新規作成
O_TRUNC 既存ファイルをオープンし、中身を空にする
O_EXCL ファイルが存在すれば、新規作成しない
O_APPEND 追加書込モード
O_TEXT テキストモード
O_BINARY バイナリーモード
上表のモードは「fcntl.h」で定義されているので、これをインクルードする必要がある。
モード(第三引数) 動作
S_IREAD 読み込み専用モード
S_IWRITE 読み込み・書き込みモード
・第三引数は、第二引数が「O_CREAT」の時のみ指定する。
・第二引数の「S_IREAD」や「S_IWRITE」は「sys\stat.h」で定義されていますので、 このファイルをインクルードする必要があります。
エラーコード 意味
EACCES ファイル名に既存の読み出し専用ファイルを指定したか、またはファイルではなくディレクトリを指定しています。
EMFILE 開いているファイルが多すぎます
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


ファイル読み込み

関数名 read
書式 int read(int fd, void* buffer, unsigned int count );
戻り値 -1:エラー
0:ファイルの終端で呼ばれた
その他:実際に読み込んだサイズ(バイト)
機能 オープンされているファイルディスクリプタ(fd)をcountバイト読み込み、bufferに格納する
エラーコード 意味
EBADF fdが無効
・ファイルが読み込み用に開かれていない
・ファイルがロックされている
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


ファイル書き込み

関数名 write
書式 int write(int fd, void* buffer, unsigned int count );
戻り値 -1:エラー(ディスク容量が足りないなど)
その他:実際に書き込んだサイズ(バイト)
機能 bufferに格納されている内容をオープンされているファイルディスクリプタ(fd)へcountバイト書き込みます
エラーコード 意味
EBADF fdが無効
・ファイルが書き込み用に開かれていない
ENOSPC ・ディスク容量が足りない
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


ファイルクローズ

関数名 close
書式 int close(int fd );
戻り値 -1:エラー(ファイルディスクリプタが無効)
0:クローズ成功
機能 開いているファイルディスクリプタをクローズします
エラーコード 意味
EBADF fdが無効
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


ランダムアクセス

関数名 lseek
書式 long lseek(int fd, long offset, int origin );
戻り値 -1:エラー
その他:ファイル先頭からのバイト数
機能 originの位置からoffsetバイト目に移動します。
モード(第三引数) 動作
L_SET ファイルの先頭からoffsetバイト目に移動 (UNIXのみ)
L_XTND ファイルの終端からoffsetバイト目に移動 (UNIXのみ)
L_INCR 何もしない(現在位置を知りたい場合) (UNIXのみ)
SEEK_SET ファイルの先頭からoffsetバイト目に移動
SEEK_CUR 現在位置からoffsetバイト目に移動
SEEK_END ファイルの終端からoffsetバイト目に移動
上表のモードは「stdio.h」で定義されているので、これをインクルードする必要がある。
エラーコード 意味
EBADF fdが無効
EINVAL originの値が無効か、またはoffsetの値がファイルの先頭より前
「stdlib.h」をインクルードすると、自動的にerrnoというグローバル変数が作られます。 エラーが起きた場合は、この変数にエラーコードが自動的に代入されます。ただし、これら エラーコードは「errno.h」で定義されています。


その他

関数名 fdopen
書式 FILE* fdopen(int fd, const char* mode );
戻り値 NULL(0):エラー
その他:FILE構造体のポインタ(ファイルポインタ)
機能 ファイルディスクリプタfdを拡張してバッファー入出力機能(ストリーム)を 追加し、以降高水準入出力関数を用いることができるようにします。
モード(第二引数) 動作 ファイルが存在しない場合 ファイルが存在する場合
"r" 読込モード エラー
"w" 書込モード 新しいファイルを作成 内容が失われる
"a" 追加書込 新しいファイルを作成 既存ファイルの最後に追加
"r+" 読込・書込モード エラー
"w+" 読込・書込モード 新しいファイルを作成 内容が失われる
"a+" 読込・追加書込モード 新しいファイルを作成 既存ファイルの最後に追加

関数名 _filelength
書式 long _filelength( int fd );
戻り値 -1L:エラー
その他:ファイルサイズ
機能 ファイルサイズを返します。

※関数名が[_]で始まっている関数は、プラットフォーム(OSやコンパイラなど)によっては 使用できない場合があります。


←前ページへ :  トップへ :  次ページへ→