• 締切済み

このプログラムの動作について教えてください

#include<stdio.h> #include<unistd.h> #define SIZE 10 int main(int argc,char *argv[]){ int fd; char buf[SIZE]; fd=open("data",0); read(fd,buf,10) write(1,buf,10); close(fd); rerutn 0; } というプログラムで dataの中身が以下のテキストファイルとなっているようなのんですが dataの内容:abcdefghijklmnopqrstuvwxyz このプログラムの出力結果がabcabcabce となるとの事なのですが何故でしょうか? 普通に先頭から10バイト分読み込んで出力するならabcdefghijとなるのではないのでしょうか? どうぞご教授お願いします

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

たいへん申し訳ありませんが、提示されたソースには 少なくとも下記の2箇所のエラーがあります。 >read(fd,buf,10) // セミコロンがない >rerutn 0; // return のスペルが正しくない もしかすると、他にも、お手持ちのソースとの相違があるかもしれません。 そこで、お手持ちのソースを手で書き写すのではなく、 クリップボード経由で貼り付けていただけますでしょうか?

  • nesnes
  • ベストアンサー率33% (1/3)
回答No.1

どのような 環境で実行されたかは知りませんが、 私の環境ですと、 abcdefghijと表示されましたが..... ちなみに コンパイラはgcc 4.3.2 実行環境はdebian 5.0 lennyです

okamotin
質問者

お礼

回答ありがとうございます。 この問題自体ある講義のテストの過去問でして、そこの模範解答が質問に書いたような意味不明な文字列となっていたために質問させていただきました。 私もやはりabcdefghijと出力が出ているので解答が間違っているんですね! これで明日のテストを乗り切れそうです

関連するQ&A