ホームに戻る
 ファイル系

1、ファイルエントリ情報用ポインタの定義
2、ファイルディスクリプタの定義
3、ファイルエントリ情報を調べる
4、ファイルを作る
5、ファイル情報を追加する
6、ファイルを開く
7、ファイル内の移動
8、ファイルに書く
9、ファイルを読む
10、ファイルを閉じる
11、メモ


 1、ファイルエントリ情報用ポインタの定義

struct stat *statbuf;

ファイルエントリ情報を入れる構造体へのポインタを定義

 2、ファイルディスクリプタの定義

unsigned int fd;

ファイルディスクリプタの定義

 3、ファイルエントリ情報を調べる

stat("/ram0/sample.txt", statbuf);

/ram0/sample.txtというファイルのファイルエントリ情報を調べる
エラーの場合負の値を返す
引数2にはファイルエントリ情報が入る

引数1:ファイルのフルパス (最大64バイト文字 ファイル名は最大16バイト文字)
引数2:ファイルエントリ情報用ポインタ

 4、ファイルを作る

creat("/ram0/sample.txt", 0x06, 1)

ブロック1つぶんに読み書きできるファイルを作る
エラーの場合負の値を返す

引数1:ファイルのフルパス (最大64バイト文字 ファイル名は最大16バイト文字)
引数2:ファイルモード

bit0 :1で実行可能ファイル
bit1 :1で書き込み可能ファイル
bit2 :1で読み込み可能ファイル
bit3 :1でmmapさせない
bit4 :1でStreamILのインスタンス
bit5 :1でILのインスタンス
bit6 :シンボリックリンク
bit7 :ディレクトリ

引数3:ブロック数(1ブロックは128バイト)

 5、ファイル情報を追加する

fs_setinfo("/ram0/sample.txt", "sample"); 

ファイルの情報を追加する

引数1:ファイルのフルパス (最大64バイト文字 ファイル名は最大16バイト文字)
引数2:ファイルの情報(最大24バイト文字)

 6、ファイルを開く

open("/ram0/sample.txt", 0x06, 0x06);

ファイルを読み書き可能で開きファイルディスクリプタを得る

引数1:ファイルのフルパス (最大64バイト文字 ファイル名は最大16バイト文字)
引数2:ファイルのオープンモード

bit1 :1で書き込み可能
bit2 :1で読み込み可能

引数3:ファイルモード

bit0 :1で実行可能ファイル
bit1 :1で書き込み可能ファイル
bit2 :1で読み込み可能ファイル
bit3 :1でmmapさせない
bit4 :1でStreamILのインスタンス
bit5 :1でILのインスタンス
bit6 :シンボリックリンク
bit7 :ディレクトリ

戻り値:ファイルディスクリプタ

7、ファイル内の移動

lseek(fd, 0, 0);

引数1:ファイルディスクリプタ
引数2:0でファイル先頭から 1で現在から 2で末尾から
引数3:ファイルの位置

 8、ファイルに書く

write(fd, (char far *)p, 4);

ファイルにポインタpからの内容を4バイト書き込む
エラーの場合は負の値を返す

引数1:ファイルディスクリプタ
引数2:書き込む値のポインタ
引数3:バイト数

 9、ファイルを読む

read(fd, (char far *)p, 4);

ファイルから4バイト読み 内容をポインタpにセット
エラーの場合は負の値を返す

引数1:ファイルディスクリプタ
引数2:読み込んだ値にあてるポインタ
引数3:バイト数

 10、ファイルを閉じる

close(fd);

ファイルを閉じる

引数1:ファイルディスクリプタ

 11、メモ

エラーの場合は負の値を返す
エラーの種類はそれぞれ戻り値のビットを調べる

inserted by FC2 system