1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   掲示板ランキング



掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5748

テキストの結合
投稿者---Blow(2006/05/17 22:07:18)


2つのテキストファイルを結合するプログラムを下の用に作ったのですが、コマンドライン引数の最初のテキストの内容しか結合内容の書き出し用のファイルに書き込まれません。


#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{ 
char block[1024]; 
int in1, in2, out; 
int nread1;
int nread2;

in1 = open(argv[1], O_RDONLY);
in2 = open(argv[2], O_RDONLY);
out = open("b.txt", O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
while((nread1 = read(in1,block,sizeof(block))) > 0)
write(out,block,nread1); 
while((nread2 = read(in2,block,sizeof(block))) > 0)
write(out,block,nread2); 

exit(0);
}


どうしたら結合できるのか教えてください。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:テキストの結合 5749 ぽこ 2006/05/17 22:52:56


No.5749

Re:テキストの結合
投稿者---ぽこ(2006/05/17 22:52:56)



私の環境(Cygwin1.5.16)では連結できてきいるように見えます。
#2つ目に指定したファイルが空っぽとか?



この投稿にコメントする

削除パスワード

No.5750

Re:テキストの結合
投稿者---Blow(2006/05/17 22:57:54)


>
>私の環境(Cygwin1.5.16)では連結できてきいるように見えます。
>#2つ目に指定したファイルが空っぽとか?

わたしもCygwinを使っていますが連結できません。2つめのファイルにもちゃんと内容を書いています。
やっぱりプログラムがおかしいのでしょうか? 



この投稿にコメントする

削除パスワード

No.5751

Re:テキストの結合
投稿者---KING・王(2006/05/17 23:09:47)


>やっぱりプログラムがおかしいのでしょうか? 

open()に失敗しているとかありませんか?
または、write()で失敗しているとかは?

ま、とりあえず、ステップ実行などのデバッグを行い、どこでおかしくなっているか見るのがよいでしょう。
#テキストファイルなので、適当にprintf()を埋め込むのもありかな。

あと、戻り値は必ずチェックするようにしましょう。


この投稿にコメントする

削除パスワード

No.5752

Re:テキストの結合
投稿者---Blow(2006/05/17 23:24:22)


KING・王さんも正常に結合できたのでしょうか?
そうなるとCygwinのインストールに失敗しているのかもしれません。
もう一度プログラムを見て、間違いがないようであったらCygwinをインストールし直してみます。



この投稿にコメントする

削除パスワード

No.5753

Re:テキストの結合
投稿者---KING・王(2006/05/18 00:09:30)


>KING・王さんも正常に結合できたのでしょうか?

いや、私はCygwinは使用しておりませんし、
他の環境でも実行したわけではありません。

ただ、ぽこさんが成功したとのことだったので、
とりあえず、ソースをぱっと見た感じで気になったところを記したまでです。




この投稿にコメントする

削除パスワード

No.5754

Re:テキストの結合
投稿者---Blow(2006/05/18 00:31:22)


ご迷惑おかけしました。
Cygwinを再インストールしたところ、プログラムによる連結がきちんと行われていることが確認できました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ