タグ

cに関するjjzakのブックマーク (340)

  • 開発メモ: 50行のC++コードでWebサーバを実装する

    「Kyoto Tycoonの設計 その四」改め、50行でWebサーバを書く方法を解説する。前回実装した「多重I/Oマルチスレッド汎用TCPサーバ」の上にHTTPの処理を行う層をつけて、「多重I/Oマルチスレッド汎用HTTPサーバ」を司るクラスを実装してみたので、それを使ってちょちょいとやる。 URLクラス HTTPと言えばURLが使えないと意味がない。URLは単なる文字列として扱ってもよいのだが、様々なシーンで分解や加工が必要になり、その処理はなにげに複雑で面倒なので、予めクラスとして導出しておいた方がよいだろう。 class URL { public: // 文字列のURLを解析して内部構造を作る void set_expression(const std::string& expr); // スキーム要素を設定する void set_scheme(const std::string&

    jjzak
    jjzak 2011/02/20
    [][][http][network][programming][socket][web]
  • emit.jp - emit リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    jjzak
    jjzak 2011/02/20
    [][][programming][tips][optimize]
  • Site is undergoing maintenance

    Site will be available soon. Thank you for your patience!

    Site is undergoing maintenance
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    jjzak
    jjzak 2011/02/20
    [][][boost][c][][0x][stl][programming]
  • C++ Reference Project

    C Library The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions: <cassert> (assert.h)C Diagnostics Library (header)<cctype> (ctype.h)Character handling functions (header)<cerrno> (errno.h)C Errors (header)<cfenv> (fenv.h)F

  • なんでも作っちゃう、かも。

    Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。 C言語でコルーチンを実装してみる、その4。今回でコルーチンの連載(?)は最後です。最後にコルーチンを使った協調型スレッドライブラリを実装します。さっそくサンプルコードから見ていきましょう。 int thread1_count=0; int thread1_func(coroutine_t coro) { co_begin(coro); while(1){ thread1_count++; co_yield(); } co_end; } int thread2_count=0; int thread2_func(coroutine_t coro) { co_begin(coro); w

  • http://members.jcom.home.ne.jp/c-plusminus/mitron_report/frame.htm

  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

    jjzak
    jjzak 2010/08/24
    [][][lambda][tutorial]
  • C++で論理型言語コンパイラを書いてみる

    C++ で、論理型言語(GHC)コンパイラを書く 論理型言語コンパイラを作る理由 基ポリシー: いろいろ諦める GHC の基 実装関連 C++ を使う理由 論理変数を実装する ゴールのコンパイル ゴールキューと疑似マルチタスク 疑似マルチタスクから当のマルチタスクへ 最適化 ガベージコレクション Boehm GC を C++ で使うための調査 ガベージコレクションの実装 JavaScript で GHC [JavaScript] 8-queen [JavaScript] Canvas を使った描画 [JavaScript] 組み込み述語の書き方 (メモ) KLIC との比較 GraphViz と GHC オブジェクト構造の可視化(案) GraphViz によるグラフィカルデバッグ GHC プログラミング 入出力と順序制御 竹内関数と遅延評価 [JavaScript] wait/1 と

    jjzak
    jjzak 2010/08/24
    [][][prolog][implementation][compiler]
  • 碧落 - C 言語でオブジェクト指向プログラミングを行う

    はじめに この記事では C 言語でオブジェクト指向プログラミングを行う方法を、 アドレス帳ソフトの作成を例にしながら紹介します。 とは言っても、 現在「オブジェクト指向プログラミング」という言葉で表されることを完全に実現するわけではありません。 Bjarne 氏が言うところの 「データ抽象化のスーパーセットであるオブジェクト指向プログラミング」 を現実的な手間で実現します。 これによって次に挙げる点の向上を狙います。 安全性 可読性 他言語との相互運用性 オブジェクト指向とは オブジェクト指向という言葉が魔法の呪文のように唱えられた時代は終わったように思いますが、 オブジェクト指向という言葉は何を表すのでしょうか。 隠蔽、継承、多相性という 「オブジェクト指向の三原則」 を満たさなければオブジェクト指向言語ではないとしてプログラミング言語が批判されたこともありました。 しかし「オブジェクト

  • Cで実現する「ぷちオブジェクト指向」

    はじめに CodeZineではお初にお目にかかります、επιστημη(エピステーメー)です。最初のアーティクルはクラシックなCのお話。 昨今のアプリケーションはオブジェクト指向言語による実装が主流と言ってもいいでしょう。C++Java、VB.NETさらにはRubyPythonといったスクリプト言語まで、オブジェクト指向でない言語を探すのに苦労するくらいです。 記事では、今なお現役バリバリで活躍している手続き型言語の代表格(?)Cによる、オブジェクト指向のマネゴト(オブジェクト指向風味のCコーディングスタイル)を試みます。 対象読者 もっぱらCを主な開発言語として使ってはいるけども、オブジェクト指向に興味と憧れを抱いている方。 抽象データ型 手始めにオブジェクト指向の特徴の1つ、「抽象データ型(ADT:Abstract Data Type)」をCで実現してみます。抽象データ型とは、デ

    Cで実現する「ぷちオブジェクト指向」
  • http://www.malib.net/api/ja/node2.html

  • 2009 Schedule — Compview Project site

  • Loading...

  • 第22回 FFIを使って他の言語の関数を呼び出す

    関数ポインタを利用する 実用的なプログラムを書くには,通常の関数呼び出しだけでは不十分です。コールバック関数を登録する場合などでは,関数ポインタが必要になることがあります。関数ポインタの利用方法を見ていきましょう。 先に示したforeign.hでは,関数ポインタを使ってPoint型に演算を施すapplyPoint関数を提供していました。 typedef void (*PointFunc) (struct Point *pt); void applyPoint (struct Point* pt, PointFunc func); applyPoint関数を利用するには,Haskellの関数をCの関数ではなく関数ポインタに変換しなければなりません。どうすればよいでしょうか? Cのコードで泥臭く変換することもできますが,FFIには関数ポインタを使用するための宣言がすでに用意されています。for

    第22回 FFIを使って他の言語の関数を呼び出す
  • クソゲ〜製作所 - バイトオーダーの変換(バイトスワップ)

    つまり、LEの方はデータの後ろからメモリに格納して行き、BEはデータの並び順にメモリに格納して行く。人間から見れば、データが正順に格納されるBEの方が分かりやすいが、コンピュータ的にはLEの方が処理しやすいらしい。 バイトオーダーの問題 次に、上に書いたLEのメモリ番地0〜4の内容をそのままファイルに書き出したとしよう(つまりデータの保存)。ファイルの内容は「EFCD3412」となるはずだ。 今度は、そのファイルからメモリ内容を復元する事を考える(データの読み込み)。 LEの環境で作ったファイルなのだから、LE環境で読み込めば、当然元のデータである「0x1234CDEF」が得られるが、BE環境ではそうは行かない。現在のメモリ内でのデータの並びは「EF CD 34 12」であり、BEはデータを正順に格納して行く事から、この並びから得られるデータは「0xEFCD3412」となってしまう。 この

    jjzak
    jjzak 2010/08/24
    少しはプログラム組めるようになってきた管理人による、放置気味blog
  • ダブルポインタの配列と1次元配列 - C_memo(5)

    Aは、ダブルポインタを使った2次元配列のmalloc。以下のAは、配列の領域を確保し、0で初期化するコードである。 Bは、ポインタの一次元配列を静的にプールしたもの。その後、0で初期化する。 AよりもBのほうが高速に動作する。 理由は一つの要素へのメモリアクセス回数がダブルポインタが2回に対し、一次元配列では1回で済むため。 A unsigned char **ch; ch = malloc(HEIGHT_SIZE * sizeof(unsigned char*)); if(ch == NULL)exit(1); for(i=0;i<HEIGHT_SIZE;i++){ ch[i] = malloc(WIDTH_SIZE * sizeof(unsigned char)); if(ch[i] == NULL)exit(1); } for(i=0;i<HEIGHT_SIZE;i++){ for(

    ダブルポインタの配列と1次元配列 - C_memo(5)
  • c-eldoc.el で C 言語プログラミング革命 - mooz deceives you

    emacs は人生 先日, また Life Changing なものに出会ってしまいました. 最近, 毎週のようにこの言葉を使っていて僕はどれだけ人生を変えれば気が済むのかという話なのですが, 出会ってしまったのです. c-eldoc.el に. eldoc.el 皆さん, eldoc.el をご存知でしょうか. Emacs Lisp を少しでも書かれるという方なら絶対に使っておきたいパッケージの一つが, この eldoc.el です. カーソル付近の関数に対する引数のリストをエコーエリアへ表示してくれたり, カーソルの位置から対応する引数を割り出しハイライトしてくれたり, もうこれなしで elisp を書く気などおきません. さらには eldoc-extension というパッケージを入れることにより関数や変数のドキュメントを表示してくれる機能まで追加され, もう至れり尽くせりです. 詳

    c-eldoc.el で C 言語プログラミング革命 - mooz deceives you
  • C tips & reference \n

    当サイトは、その名のとおりC言語の関数やマクロの使い方についての説明を主なコンテンツとしております. コーディング中に「あれ,この関数なんだっけ?」となったときや,関数をmanコマンドで調べたけれど,いまいち使い方が分からないときなどにご利用いただければ幸いです. ホームページの構成 C言語関数辞典は大きく分けて4つのコンテンツから構成されます. コンテンツ説明

    jjzak
    jjzak 2010/08/24
    C言語の Tips の紹介と関数のリファレンス
  • Using Cscope on large projects (example: the Linux kernel)

    Cscope can be a particularly useful tool if you need to wade into a large code base. You can save yourself a lot of time by being able to do fast, targeted searches rather than randomly grepping through the source files by hand (especially since grep starts to take a while with a truly large code base). In this tutorial you'll learn how to set up Cscope with a large project. We'll use as our examp