5: 2008-11-20 (木) 00:24:51 |
6: 2008-11-20 (木) 13:30:20 |
| --コマンドライン文字列取得。現状ではコマンドライン全体が無条件に見える。将来的には、この仕様は廃止され、コマンドライン全体を見る方法はなくなる。 | | --コマンドライン文字列取得。現状ではコマンドライン全体が無条件に見える。将来的には、この仕様は廃止され、コマンドライン全体を見る方法はなくなる。 |
| --仕様が廃止された後でも、このAPIを使ったアプリを救済するために、このコマンドラインで渡せる文字列を指定する方法が提供される(詳細は未定だが、例: >efg01 app.g01 jg01_cmdlin:"abc def ghi")。lenには実際の長さが入る。nが*lenよりも小さい場合、文字列はnまでしか格納されない。 | | --仕様が廃止された後でも、このAPIを使ったアプリを救済するために、このコマンドラインで渡せる文字列を指定する方法が提供される(詳細は未定だが、例: >efg01 app.g01 jg01_cmdlin:"abc def ghi")。lenには実際の長さが入る。nが*lenよりも小さい場合、文字列はnまでしか格納されない。 |
- | -[000002] jg01_fopen(int mode, int *fhandle, char *path) | + | -[000002] jg01_fopen(int mode, int slot, char *path) |
- | --ファイルのオープン。オープンに成功するか失敗するまで帰ってこない(OSASKのような非同期式ではない・・・手抜きなので)。失敗した場合、*fhandleが-1になる。 | + | --ファイルのオープン。オープンに成功するか失敗するまで帰ってこない(OSASKのような非同期式ではない・・・手抜きなので)。失敗した場合、slotは無効状態になる。 |
- | --modeのbit0 : ライトするかどうか(1:でライトもする) | + | --modeのbit0-2 : 0=タスクローカル, 1=ユーザ, 2=マシンローカル, 3=ネットワーク |
- | --modeのbit1 : 1とき、オープン後にファイルサイズを0にする | + | ---通常はとりあえず1にしておけばよい。 |
- | --modeのbit2 : 1のとき、オープンに先立って同名のファイルがない場合にエラー | + | --modeのbit3 : ライトするかどうか(1:でライトもする) |
- | --modeのbit3 : 1のとき、オープンに先立って同名のファイルがある場合にエラー | + | --以下はライトしない場合 |
- | --modeのbit4 : 1のとき、オープン後にファイルポインタを末尾に移動 | + | ---modeのbit4 : 0のとき、オープンに先立って同名のファイルがない場合にエラー |
- | --テキストモードなどというものはない。「ぐいぐい01」での標準的なテキストはCRが入らないものとするが、各アプリにおいてこれをあえて出力するオプションがあってもよい。 | + | --以下はライトもする場合 |
- | -[000003] jg01_fclose(int *fhandle) | + | ---modeのbit4 : 1のとき、オープン後にファイルサイズを0にする |
| + | ---modeのbit5 : 1のとき、オープン後にファイルポインタを末尾に移動(bit4=0のとき) |
| + | ---modeのbit5 : 1のとき、オープンに先立って同名のファイルがある場合にエラー(bit4=1のとき) |
| + | --テキストモードなどというものはない。「ぐいぐい01」での標準的なテキストはCRが入らないものとするが、各アプリにおいてこれをあえて出力するオプションがあってもよい。そしてCRを無視することができない(=CRがあると誤動作する)テキストツールがあったとしても出来がよければ川合秀実推奨はでる。 |
| + | --slotは4~63が使用可能。 |
| + | -[000003] jg01_fclose(int slot) |
| --ファイルのクローズ。クローズはエラーにならない。というか、エラーの場合は何もしない。 | | --ファイルのクローズ。クローズはエラーにならない。というか、エラーの場合は何もしない。 |
- | -[000004] jg01_fread(int *fhandle, int *len, int n, char *p) | + | -[000004] jg01_fread(int slot, int *len, int n, char *p) |
| --ファイルからの読み込み。*lenに読み込んだバイト数が返る。0が返るとEOF。-1だとエラー。 | | --ファイルからの読み込み。*lenに読み込んだバイト数が返る。0が返るとEOF。-1だとエラー。 |
- | -[000004] jg01_fwrite(int *fhandle, int *len, int n, char *p) | + | -[000004] jg01_fwrite(int slot, int *len, int n, char *p) |
| --ファイルへの書き込み。サブファンクション番号がfreadと同じなのはミスではない(オプションコードで見分ける)。*lenに書き込めたバイト数が返る。-1だとエラー。 | | --ファイルへの書き込み。サブファンクション番号がfreadと同じなのはミスではない(オプションコードで見分ける)。*lenに書き込めたバイト数が返る。-1だとエラー。 |
- | -[000005] jg01_fseek32(int *fhandle, int mode, int ofs, int *pos) | + | -[000005] jg01_fseek32(int slot, int mode, int ofs, int *pos) |
- | --ファイルポインタの移動・取得。API的には32bit制限があるわけではないが、C言語ライブラリ化にあたって32bitに限定した。 | + | --ファイルポインタの移動・取得・ファイルサイズ変更。API的には32bit制限があるわけではないが、C言語ライブラリ化にあたって32bitに限定した。 |
| + | -[000006] jg01_testslot0(int slot) |
| + | --slotの状態を返す。-1がslot値無効、0が未使用・無効、1がコンソール、2がファイル。 |