タグ

C言語に関するchorinskyのブックマーク (26)

  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
  • Big Sky :: select(2)の第一引数にディスクリプタの最大値を渡すのは間違い?

    追記 POSIX では明確にソケットの最大値とはうたってはいないものの、Linux の実装を見ても最大値と扱う方が良い様です。また Winsock では select(2) の第一引数は無視されるようです。 C言語でソケットを使うプログラミングを行う際、ソケットディスクリプタがシグナル状態かを調べる方法としてselect(2)があります。 使い方は int r; fd_set rfds; FD_ZERO(&rfds); FD_SET(sock, &rfds); r = select(1, &rfds, NULL, NULL, NULL); といった感じ。ここでselect(2)の第一引数に渡している値は、ディスクリプタ集合rfdsの内、いくつ検証するかを指す値。つまりrfdsに対してFD_ZERO/FD_CLRしてからFD_SETした回数となります。 ちなみに戻り値は、ディスクリプタ集合の

    Big Sky :: select(2)の第一引数にディスクリプタの最大値を渡すのは間違い?
  • マルチスレッドプログラミング (POSIX、Win32)

    このページではマルチスレッド、プロセス間通信、スレッド間通信およびタイマープログラミングについて紹介します。(いやー。好きだなこういう話題は。) 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。また、サンプルの文字コードはS-JISで提供しますので、ご使用の際はWindowsからFTPするなどして適切な文字コードに変換してください。尚、サンプル中には説明の簡略化のため意味のないコードや、実用上問題のあるコードも含まれていますのでご注意ください。 [POSIX]pthread_create [POSIX]スレッドの同期(ミューテックス) [POSIX]タイマー [WIN32]_beginthreadex [WIN32]スレッドの同期(ミューテックス) [WIN32]共有メモリ [WIN32]スレッドの同期(イベント) [PO

  • Redirect...

  • バイトオーダーとか - 自分用メモとか

  • クライアントプログラム

    (1)のソケット生成ではsocket()システムコールを使ってソケットを 生成しますが、その引数にはソケットの種別を指定します。これにはソケットが TCP用であるのか、UDP用であるのかなどが含まれます。そして、ソケットの生 成が成功したときは、socket()はその生成したソケットの識別子を 返します。 ただし、socket()はソケットを作るだけであり、この段階では、サー バ側コンピュータと通信接続は行われていません。そこで、(2)の connect()システムコールを使って、(1)で生成したソケットをサー バ側プログラムのソケットと通信接続を行います。このとき、 connect()の引数には、ソケット識別子の他に、接続先となるサーバ 側コンピュータ(正しくはネットワークインターフェース)のIPアドレスとポー ト番号などの情報を与えます。 通信接続完了後は、(3)のread()システム

    chorinsky
    chorinsky 2011/01/15
    [TCP/IP]
  • http://www.ueda.info.waseda.ac.jp/~toyama/network/index.html

  • コンピューター:C言語講座:fork,exec,pipeについて

    コンピューター:C言語講座:fork,exec,pipeについて このテーマはどちらかというとUNIX系の話題になってしまうのですが、PC系ではDOSの時代にはマルチタスクができませんでしたので、平行には走れませんでしたが、C言語の処理系独自の関数がたくさんありました。WindowsになってからはUNIX系と似てきましたが、まだ少し違うようです。 自分で作成したプログラムから他のコマンドを実行したい、ということは良くあることだと思います。例えば、ディレクトリーの中身を簡単に得たい場合などはUNIXではlsコマンドを実行させて、結果をもらうのが簡単に思い付くと思います。とくにUNIXのコマンドはそのように組み合わせて使いやすくできていて、必要な情報だけを明確に返答するコマンドがほとんどです(その分、初心者が自分でコマンドを使う時に不親切なのですが)。 system() 大抵の人が上記のような

  • ライブラリの基礎知識

    2000.03.11 初版 ライブラリは、再利用を目的として作成されたコンパイル済みの関数の集合です。 linux以外のOS別 Shared Library の構築・使用ガイドは、 http://www.dais.is.tohoku.ac.jp/~kabe/vsd/dynald.htmlへどうぞ。 ライブラリの名前の先頭は、lib から始まります。Linux のライブラリには次の3種類あります。 スタティック 共有 ダイナミック スタティックライブラリは、コンパイル時にコードがプログラムに組込まれます。 モジュールサイズが大きくなりますが、別のマシンにバイナリで配布したときに そのライブラリがなくても動作します。 .a で終わるファイルです。 共有ライブラリは、プログラムの実行時にロードされます。マシンによっては、 その共有ライブラリがなかったり、バージョンが違ったりして、動作しないことが

  • 第6章 C言語による実践プログラミング

    この章では、C言語を使用した実践的なプログラミングを取り上げます。 一口にプログラミングといっても、ちょっとしたファイルの読み書きやデバイス操作を実現するだけの簡単なものから、複雑な演算を行ったりネットワークを介してサービスを提供し続けるような高度なものまで、多岐に渡ります。ここではその中から、誰もが様々な場面で使うであろう基技術と、Armadilloが持つインターフェースを通じて行う操作の代表的なものを中心に、分野ごとに分けて紹介していきます。 Linuxや開発環境に依存した独特な部分に留意しつつ、組み込みならではの使用方法を想定した応用例やノウハウについても多く記載したつもりです。プログラミング経験豊富な方であってもおさらいのつもりで読んでみて、一般的なプログラミングでは解説されていない情報を見つけていただければ幸いです。 C言語で書かれたプログラムは、実行できる状態にするために

  • アーカイブ・ライブラリの作成

    再配置可能オブジェクト・コードを含む 1 つ以上のオブジェクト・ファイルを作成します。通常、各オブジェクト・ファイルには、関数 1 つ、プロシージャ、またはデータ構造体が含まれていますが、複数のルーチンとデータが含まれる場合もあります。ar コマンドを使用して、これらのオブジェクト・ファイルを結合し、1 つのアーカイブ・ライブラリ・ファイルを作成します。 ar を実行するときに、r キーを指定します。(「キー」はコマンド行オプションに似ていますが、先行-は不要です)。

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • C言語(gccで)

    GTK+のページ(古いです) GTK+のページ(新しいけど少ないです) SDLをまとめ始めました → SDLでなんかする SDLおまけです → mimi_sdl ターゲットは初心者、仕方なくC言語をやる人、プロを目指さない人、のつもり。・・・にしてはちょっと分かりにくいのが難点。 目次 Page 1 初めてのC --- 文字出力 (printf) Page 1-2 文字出力(補足) (putchar, puts) Page 2 コンピュータに計算させる --- 四則演算 Page 3 数字の表示/入力 (printf 2) Page 4 繰り返し処理を行う --- ループ (for, while, do while) Page 5 条件分岐 (if, switch) Page 6 配列 Page 7 ポインタ Page 8 #include Page 9 コンピュータに計算させる ---

  • コンピューター:C言語講座:マルチスレッドについて

    コンピューター:C言語講座:マルチスレッドについて マルチスレッドの特徴 一般的なサーバプログラムでは、多数のクライアントからの処理をできるだけリアルタイムに処理するために、何らかの形で並列処理を行うことが多いものです。たとえば、データベースサーバで、ある検索処理に時間がかかっている間ほかのクライアントが接続すらできない、という状態ではサーバとして失格でしょう。 並列処理を実現する方法としては、 ・プログラム自体を並列処理可能に記述する ・プロセスをもともと多数起動しておく ・fork()を使って子プロセスを起動するマルチプロセス処理 ・マルチスレッドを使用する などが考えられます。プログラム自体をリアルタイム性を考慮しながら記述するのはなかなか大変で、しかもソースが複雑になりメンテナンス性も問題が多くなりがちです。プロセスをもともと多数起動するのは簡単ですが、クライアントがどのプロセスに

  • Using and Porting the GNU Compiler Collection (GCC) - GCCコマンド・オプション

    GCCを起動すると、 通常は、 前処理(preprocessing)、 コンパイル、 アセンブル、 リンクが行われます。 「全体的(overall)オプション」によって、 この一連の処理を中途の段階で停止することができます。 例えば、 `-c'オプションはリンカを起動しないよう指示するものです。 この場合、 アセンブラによって生成されるオブジェクト・ファイルが出力となります。 他のオプションは、 一連の処理の中の1つの段階に渡されるものです。 オプションの中には、 プリプロセッサを制御するものもあり、 コンパイラ自体を制御するものもあります。 また、 アセンブラやリンカを制御するオプションもありますが、 それらのほとんどは、 ここではドキュメント化されていません。 というのは、 このようなオプションを使うことが必要になることはめったにないからです。 GCCにおいて使うことのできるコマンドラ

  • リンカとは - IT用語辞典

    概要 リンカ(linker)とは、ソフトウェアの開発ツールの一つで、機械語(マシン語)で記述されたプログラムを連結、編集して実行可能ファイルを作成するソフトウェア。 プログラミング言語で書かれたソースコードはコンパイラなどによって機械語によるプログラム(オブジェクトコード)に変換されるが、そのままではOSから起動できる実行ファイルとはならない。リンカはオブジェクトコードの収められたファイルを元に様々な処理や変換を行い、OS上で起動可能な実行可能形式のファイルを作成する。 リンカはオブジェクトコード中から呼び出されるコードが収録された他のオブジェクトファイルやライブラリファイルなどを連結あるいは参照し、実行時に適切に呼び出せるよう繋ぎこむ。また、OSからの起動に必要な設定情報や先頭部分の定形コードなどを組み込み、コード中の変数や関数などのアドレス解決(変数名などをプログラム先頭からの相対位置

    リンカとは - IT用語辞典
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Gtk+/GNOME開発メモ | Netsphere Laboratories

    Gtk+/GNOMEに関するいろいろ。 文書 Glade 3 で GUI 開発 Windowsネイティブなgtk2アプリケーションの開発 gtk+クラス図 (gtk 1.2 to gtk3) gtk+ 1.2 のクラスが残っているかどうか. 覚え書き 1999.07.26 epingle 1999.02.14 gtk+のC++ラッパー Gtk+ tips gtk-list MLにおける私の発言から。 GtkButtonのラベルを取得するには? GtkEntryで,日本語入力を禁止するには? GtkOptionMenuで,ユーザーがどの項目を選択しているか知るのはどうするの? GtkOptionMenuでユーザーが選択したことを知るのはどうするの? どのハンドラで描画すればいい? ウィンドウのデザインを手早くするツールってある? X特有の機能を使いたいときは? シグナルによる標準の動作を止め

  • 近藤妥の C言語で始める Windowsプログラミング

    近藤妥の C言語で始める Windowsプログラミング ようこそ、Windowsプログラミングの世界へ ここでは、Windows上で動くアプリケーションを開発するもっとも原始的でもっともパワフルな方法の基礎を説明します。そう、WindowsのWIN32APIをC言語でダイレクトに用いる方法を説明するのです。 VBなどのRADツールがもてはやされる昨今、なぜC言語でWindowsプログラミングなのでしょうか?たしかに、VBなどのRADツールは、データベースとのやり取りをするユーザーインターフェースを作るのには十分です。また、MFCなどを用いる事により、高速なアプリケーションを容易に組むことは可能です。しかし、筆者の経験から極端な例を挙げると、ネットスケープナビゲーターのプラグインの開発には、いかなるRADツールやMFCなどのクラスライブラリーも役に立ちませんでした。つまり、R

  • 標準 Windows API - WisdomSoft

    サンプルソースは C 言語としてコンパイルしてください。 C++ としてコンパイルした場合、エラーが発生する場合があります ※誤ったプログラムを実行すると、Windowsが不安定になることもあります 重要なシステム上では実験を行わないで下さい この講座は、C言語を熟知していることが前提です