68user's page 掲示板

Prev< No. 417〜420> Next  [最新発言に戻る] [過去ログ一覧]
No. 417 # がんじゃ@C修行中 1999/08/13 (金) 16:25
はじめまして、かんじゃと申します。
こちらのホームページで

「UNIXネットワークベストプログラミング入門」技術評論社
  
が紹介されています。 じつは小生もこの本のプログラムを
実行してみたのですが seg fault のメッセージが表示され
てうまく実行できません。

>文字列リテラルを書き換えており、 FreeBSDで
>実行するとコアダンプしてしまった(どちらもC
>言語中級者なら 自分で問題箇所を修正できるレベル)。

というコメントが書かれておりましたが、具体的にはどういった
ことが問題なのでしょう?

よろしければご教示、お願いします。

No. 418 # がんじゃ@C修行中 [E-mail] 1999/08/13 (金) 16:25
はじめまして、かんじゃと申します。
こちらのホームページで

「UNIXネットワークベストプログラミング入門」技術評論社
  
が紹介されています。 じつは小生もこの本のプログラムを
実行してみたのですが seg fault のメッセージが表示され
てうまく実行できません。

>文字列リテラルを書き換えており、 FreeBSDで
>実行するとコアダンプしてしまった(どちらもC
>言語中級者なら 自分で問題箇所を修正できるレベル)。

というコメントが書かれておりましたが、具体的にはどういった
ことが問題なのでしょう?

よろしければご教示、お願いします。

No. 419 # かんじゃ@C修行中 [E-mail] 1999/08/13 (金) 16:30
メールアドレスの記入ミスで同じ内容のものを2度書き込んで
しまいました。
申し訳ありません。

No. 420 # 68user 1999/08/13 (金) 19:55
> 502 SITE command not implemented.
FTPでのパーミッションの変更は、SITEコマンドを使用するんですが、
相手側のFTPサーバにはSITEコマンドが実装されていないので、
できない、ってことです。telnetでログインしてchmodするか、
管理者に頼んでまともなFTPサーバに置き換えてもらうしかないです。

> seg fault のメッセージが表示されてうまく実行できません。
現在、手元には その本もUNIX環境もないので、確かなことは
言えませんが、どこかで char *buf="abc" などと初期化して
いる部分があると思います。で、それを buf[0]='X' などと
変更していますが、そこで落ちるはずです。"abc" は文字列
リテラルなので変更することはできないから(変更できる
環境もありますが)。なので、char buf[]="abc" などと書き
換えれば動いたと思います。

*buf="abc" と buf[]="abc" の違いについては、ネット上に
落ちてる「C言語FAQ」に詳しく書いてあります。

Prev< No. 417〜420> Next  [最新発言に戻る] [過去ログ一覧]