小俣光之:コンピューターのページ(C言語講座)
「C for UNIX」、「C言語によるTCP/IPネットワークプログラミング」、「C言語によるTCP/IPセキュリティプログラミング」「C for Linux」、「C for Linux 2」、「プログラミングでメシが食えるか!?」、「C言語による実践Linuxシステムプログラミング」に続き、「プログラミングでメシを食わせろ!!」が2008年10月末に(株)秀和システムから発売されます。
「プログラミングでメシが食えるか!?」はプログラマー個人に関する話題でしたが、こちらはプログラマーのチームを活かすための話題を中心に書きました。
発売記念の講演会・サイン会を10月24日に八重洲ブックセンターで開催します。
http://www.yaesu-book.co.jp/events/index.html#komata
ISBNコード:未定
定価(本体1400円+税)
サポートページ:未定
「C for UNIX」、「C言語によるTCP/IPネットワークプログラミング」、「C言語によるTCP/IPセキュリティプログラミング」「C for Linux」、「C for Linux 2」、「プログラミングでメシが食えるか!?」に続き 、「C言語による実践Linuxシステムプログラミング」が2007年11月20日に(株)秀和システムから発売されます。
「C for Linux」の内容を見直し、カーネル2.6対応、ラージファイル、IPv6など新しい内容を取り込み、全てのソース・解説を見直しました。紹介や目次はサポートページをご覧ください。
ISBNコード:978-4-7980-1814-0
定価(本体3000円+税)
サポートページ:http://www.ncad.co.jp/~komata/c_linux_pgm/
「C for UNIX」、「C言語によるTCP/IPネットワークプログラミング」、「C言語によるTCP/IPセキュリティプログラミング」「C for Linux」、「C for Linux 2」に続き、「プログラミングでメシが食えるか!?」が2007年1月13日に(株)秀和システムから発売されます。
プログラマーの技術的ノウハウと仕事上のノウハウをまとめたもので、縦書きの読み物です。紹介や目次はサポートページをご覧ください。
ISBNコード:978-4-7980-1558-3
定価(本体1400円+税)
サポートページ:http://www.ncad.co.jp/~komata/programeshi/
本に関する情報の他、IT業界に関することや日ごろ考えていることを掲載しています。
「C for UNIX」、「C言語によるTCP/IPネットワークプログラミング」、「C言語によるTCP/IPセキュリティプログラミング」「C for Linux」に続き、「C for Linux 2」が2005年9月23日に(株)秀和システムから発売されます。
本書はLinuxでのネットワークプログラミングに特化し、仕事で使えるネットワークプログラムを目標に、性能面、異常処理に関してこだわった紹介をしています。また、TCP/IPはもちろん、UDP/IPではブロードキャスト・マルチキャスト、さらにRAWソケットやSSLまで幅広く紹介しています。私の現時点(2005年9月)のネットワークに関する全てを出しつくしたつもりです。
サポートページ:http://www.ncad.co.jp/~komata/c4linux2/
「C for UNIX」、「C言語によるTCP/IPネットワークプログラミング」、「C言語によるTCP/IPセキュリティプログラミング」に続き、「C for Linux」が2003年9月20日に(株)秀和システムから発売されました。
本書は「C for UNIX」の内容を見直し、Linuxに特化し、マルチスレッドやUDP通信などの情報を追加し、LinuxにおけるC言語プログラミングの実践的サンプル集のような形でまとめました。
サポートページ:http://www.ncad.co.jp/~komata/c4linux/
2002年10月20日発売です。ピアソン・エデュケーションから発売です。3200円です。
DNS,SMTP,POP3、FTP,HTTPのプロキシタイプファイアーウォールをC言語によるTCP/IP(UDP/IPも)プログラミングを使って作成することをテーマにしています。この本のサポートページを別に立ち上げますので、読者の方はソースのダウンロードなどにお使いください。
サポートページ:http://www.ncad.co.jp/~komata/c4sec/
※本書で紹介しました、メール・ファイアーウォールWindows版が松下電器産業(株)よりベクターにて販売開始されました(2003.2.15):ベクターのページ
秋葉原のラオックスBOOK館で、ポップを作ってくれていました。うれしいです。クリックするとポップ部分が拡大します。
なんと!韓国語版が発売されました。私には全く読めませんが・・・。
2001年9月末発売です。ピアソン・エデュケーションから発売です。3200円です。
HTTP,SMTP,FTP,TELNET,POP3などのプロトコル・サンプルプログラムの紹介やWEB関連の実践的なプログラムを紹介するような内容です。この本のサポートページを別に立ち上げますので、読者の方はソースのダウンロードなどにお使いください。
サポートページ:http://www.ncad.co.jp/~komata/netprg/
2000年9月発売です。秀和システムから出ました。2850円です。
このホームページを元に、ホームページでは長くなり紹介できなかったような、実践的なサンプルなど、できるだけソース を多く載せ、また、開発の工程を順を追って説明したりしています。この本のサポートページを別に立ち上げますので、読者の方はソースのダウンロードなどに お使いください。
サポートページ:http://www.ncad.co.jp/~komata/c-for-unix/
私のコンピューター関連の経歴などです。これから独学でコンピューターをはじめようという方には少しは参考になるかもしれません。私も全くの独学ではじめました。
プログラミングについて思い付いたことをまとめてみようと思います。どちらかというと入門的な本 はたくさんあるので、プログラミングの現場での考え方などを書いてみようと思います。プログラミングは理屈を勉強するより、まず、サンプルを作って動かし てみるのがわかりやすいと思いますので、できるだけ短いサンプルをたくさん取り上げました。
・main()はvoid main()ではなく、int main()ではないか、という問題があるのですが、ANSI Cではint main()で、main()のreturn値がプログラムの終了ステータスとなる、となっています。従ってANSI C準拠ではint main()とすべきです。著者はK&R時代からの癖で、終了時は基本的に明示的にexit()を使用する為、あえてvoid main()としています。割り込み関数でexit()する場合と、main()が終了する際で、終了ステータスの返し方が異なるのはいまだになじめない気分もあります。ANSI C準拠コンパイラではvoid main()は警告が出ますので、気になる方はint main()に置き換えてください。また、リターンの不要な関数はプロトタイプ宣言が不要なintに、という記述もANSI C準 拠コンパイラではプロトタイプ宣言が無いと警告が出るものがほとんどで、実際はプロトタイプ宣言すべきと思いますが、テストプログラムなど、試行錯誤を 行っている間はとにかく動かすことが先決で、その意味でプロトタイプ宣言を省略するのも無意味な行動では無いと思っています。プロトタイプ生成は自動生成 も簡単に自作できるものですので、ある程度方針が固まってからでも自分で管理している範囲では良いと思います。本書は文法書ではありませんので、ご自分の スタイルに合わせてご利用ください。
また、だいぶ古い内容のままのものもあります。関数の引数記述がK&R時代のものも残っていると思いますが、気になる方は書き換えてお使いください。
・プログラム作成の手順
・パッケージ化
・fork,exec,pipeについて
・可変引数について
・メモリーについて(1)
・メモリーについて(2)
・構造体・共用体・ビットフィールド
・検索
・TCP/IPプログラム(その1:クライアント)
・TCP/IPプログラム(その2:サーバ)
・プログラミングの仕事について
・FIFO(名前付きパイプ)について
・共有メモリについて
・ディレクトリ内容の読み出し
・RPCについて(1)
・RPCについて(2)
・セマフォについて
・メッセージについて
・スリープについて(シグナルの例)
・mmapについて
・strtok、2バイト文字について
・popen,pcloseについて(waitについて)
・全角・半角変換について
・1バイト単位での文字入力について
・freopenについて
・共有ライブラリについて
・デバッグについて
・マルチスレッドについて
・参考文献
・リンク
宣伝
私の仕事の方での専門は勤務先のページにも載っていますが、ワークステーションやPCでC,C++を使い、CADやネットワーク関連、GUI関連のプログラムを作っています。そういった方面の仕事の依頼や、個人的に相談などがありましたら出来る限り対応したいと思いますので、メールでどうぞ。
たまに学生の方から、課題の答えを教えて欲しい、という感じのメールも いただくのですが、課題は自分で解くための物なので、そういった質問にはお答えしません。ただし、自分でやってみて、具体的にここの箇所がわからないと か、どういう技術を使うのがよいかなどの質問にはお答えしたいと思います。特にプログラミングを専攻している学生さんはお金を払って教わっているわけです から、他人の答えを流用したりせず、自分で考えてください。また、わからなければまずは担当の教授に質問するべきです。そのために高い学費を払っているわ けですから。答えが提出できれば良いという物ではありません。
また、私は特にアルゴリズムを自分で研究・開発したりしているわけでは ありませんのでご質問いただいても参考書をお勧めする程度しかできません。あくまでも専門はプログラミングの実践ですので、アルゴリズムなどはじっくり本 などで調べてください。入門書よりこういう専門書をたくさん読まれることをお勧めします。