低レベルのI/O(read()、write()、lseek())とperror()の使用のみを許可する割り当てに取り組んでいます。
必要なinファイルとoutファイルを正しいアクセス許可で開くことができましたが、出力すると、inファイルの内容が無限ループになります。以下のスニペットを参照してください...
void *buf = malloc(1024);
while((n = read(in, buf, 1024)) > 0){
if(lseek(in, n, SEEK_CUR) == -1){
perror("in file not seekable");
exit(-1);
}
while((m = write(out, buf, n)) > 0){
if(lseek(out, m, SEEK_CUR) == -1){
perror("out file not seekable");
exit(-1);
}
}
if(m == -1){ perror("error writing out"); exit(-1); }
}
if(n == -1){ perror("error reading in"); exit(-1); }
コードからエラートラップをいくつか削除しました。変数が初期化され、includeステートメントが存在すると想定できます。