11でソケットプログラミングの学習を行っています。11でソケットプログラミングの学習を行っています。11でソケットプログラミングの学習を行っています。all"を実行したところ以下のようなエラーが発生し上手くコンパイルすることができません。有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。05:18:4027pt本気で勉強するなら、以下を薦めておきます。単行本とりあえず修正してみました。exit(0);}Webページに掲載されているソースコードと修正していただいたソースコードを見比べながらどのように書けば警告が出なくなるのか試すことができ、非常に勉強になりました。ありがとうございました。※今後参照される方が分かりやすいように変更箇所を簡単にメモしておきます。Fedoraでは無いですけど問題は無いはずです。コンパイルオプションがいらないと思います。コンパイラオプションを削除すればコンパイルは一応可能です。警告出まくりですけど。‘exit’ご回答ありがとうございます。all"を実行したところコンパイルは通り"hellosv"と"hellocl"が生成されましたが、これらを実行すると「セグメンテーション違反です」と表示されてしまい、実行することができません。http://www.asahi-net.or.jp/~vs6k-nkym/pong_compile.htmlこちらのWebサイトで解説されているように、socketライブラリーとnslライブラリーを利用するためコンパイルオプションの"-lsocket"と"-lnsl"は必要な気がするのですが...。※利用しているコンパイラのバージョンを書き忘れていました。23:49:489ptsocketがライブラリの検索パスに登録されていないようです。ldconfigを実行してみてください。⇒(参考)共有ライブラリをシステムに認識させるにはご回答ありがとうございます。-lsocket"というエラーメッセージが表示されていたのでなんとなく、socketがライブラリの検索パスに登録されていないのではないかと感じてはいたのですが、こうすれば共有ライブラリをシステムに認識させることができるんですね。"/etc/ld.so.conf"に"/usr/local/lib"を追加後、"/sbin/ldconfig"を実行し、再コンパイルを行いましたが、残念ながらエラー内容は変わりませんでした。その後、"/etc/ld.so.conf"に追加するのは"socket.h"のある"/usr/include/sys"なのではないかと思い、再編集後、"/sbin/ldconfig"を実行し、再コンパイルを行いましたが、やはりエラー内容は変わりませんでした。いえ、なんとなく解決の糸口は見つかったような気がしてきました。実行は必要ないと思います。このプログラムは起動時に引数を指定しないとセグメンテーション違反になると思いますが、実行する際に引数は指定されたでしょうか。localhostのようにホスト名を引数に指定すれば動くのではないでしょうか。引数が指定されなくても動くようにプログラムの方も修正すべきだとは思いますが。恥ずかしながら、まさにその通りでした。おかげさまで、プログラムの中身を見てどのような引数が起動時に必要か分かるようになりました。ありがとうございました。01:41:2718pt>"hellosv"と"hellocl"が生成されましたが、これらを実行すると「セグメンテーション違反です」>と表示されてしまい、実行することができません。コンパイル時に警告は出てあたりまえ。「セグメンテーション違反です」で落ちるのも当たり前。答えをそのまま書くのでは勉強にならないのでヒントだけ。警告のヒント1:必要なヘッダが無い。2:connect(2)の第2引数の型が違う。gethostbyname(argv[1]);>※利用しているコンパイラのバージョンを書き忘れていました。いえばこちらも書いていませんでしたね。関係ないとは思うけど念のためこちらの環境を書いておきます。Ubuntuでaptで入れただけです。試行錯誤の末、なんとか起動できるようになりました。ありがとうございました。ここでベストアンサー27pt本気で勉強するなら、以下を薦めておきます。単行本とりあえず修正してみました。exit(0);}Webページに掲載されているソースコードと修正していただいたソースコードを見比べながらどのように書けば警告が出なくなるのか試すことができ、非常に勉強になりました。ありがとうございました。※今後参照される方が分かりやすいように変更箇所を簡単にメモしておきます。01:52:53ちょっと書き忘れていたので。Unixでのネットワークプログラミングを勉強するならば、個人的には「UNIXネットワークプログラミング」がおすすめ。ISBN:4894712059:detailあとは直接必要では無いけど、IPCとプロセス、スレッドもあればたいがいの事ができるはずです。プロセス、スレッドは複数との同時通信とかに、IPCは他のプロセス、スレッド間でのデータのやりとりに使います。21:02:12>longicornさんzzz_1980さんも「UNIXネットワークプログラミング」をおすすめされていましたし良書そうなので、是非購入したいと思います。基本部分をしっかり勉強してIPC、プロセス、スレッドといった次のステップに進んでいきたいですね。コメントありがとうございました。Facebookでシェア全てのコメントを見る「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。これ以上回答リクエストを送信することはできません。