0

私はCread()で初めて関数を使用しようとしています:

int file2p = open(curFilePath, O_RDONLY, 0);
char* buffer = NULL;
  while(read(file2p, buffer, sizeof(char*)) != 0){                 
            write(filep, buffer, sizeof(char*));
  }
close(file2p); 

filep私も書いている現在開いているファイルです。なぜかこのループは終わらない。ファイルの終わりまでディレクトリ内のファイルを読み取り、取得したものを別のファイルに書き込もうとしています。(アーカイブ)。

4

2 に答える 2

1

一体どこにデータが置かれると思いますか?

NULL に設定されたバッファーを取得しました

文字ポインタのサイズを読み取りました。

しない理由

int file2p = open(curFilePath, O_RDONLY, 0);
char buffer[1024];
int len;
  while((len = read(file2p, buffer, 1024)) != 0){                 
            write(filep, buffer, len);
  }

close(file2p); 
于 2013-11-13T01:39:49.970 に答える
1

問題を診断するエラーチェックは行いません。であることをテストfile2p-1、 の戻り値についても同様ですread(2)

他の人が言ったように、有効なバッファを使用して入力を保存します。:)

于 2013-11-13T01:36:35.823 に答える