タグ

cに関するtanarkyのブックマーク (26)

  • プラグインで独自ストレージを作ろう - mixi engineer blog

    OpenSocialとかC++0xとか世の中の流れが早すぎて、いろいろと勉強しなきゃなと焦りつつも、ついついピクミン2にはまってしまうmikioです。今回はTokyo Tyrant(TT)を使ってユーザ独自のストレージシステムを簡単に構築する方法について説明します。 プラグインとは オブジェクト指向プログラミングに慣れた人にとっては、インターフェイスと実装を分離することによってプログラムの拡張性や保守性を向上させる技法(データ抽象)は常識ですよね。その考えをさらに進めると、インターフェイスのみをプログラムに記述しておいて、具体的な実装は実行時に割り当てるという、いわゆるプラグイン(plug-in)という技法に至ります。プラグインでカスタマイズできる能力をプラガブル(pluggable)などと言ったりもします。 例えばTokyo Cabinet(TC)では、レコードの挿入、削除、参照といった

    プラグインで独自ストレージを作ろう - mixi engineer blog
  • glibc の fopen() で 'm' オプションを使う - bkブログ

    glibc の fopen() で 'm' オプションを使う 最近の glibc の fopen() には 'm' というオプションがあると知りました。 'm' オプションを指定すると、リードオンリーでファイルを開いたとき、可能な場合、 mmap が内部的に使われるようになります。 次のようなプログラムに対して strace をかけると fgets() の内部的で read システムコールが呼ばれていることがわかります。 #include <stdio.h> #include <assert.h> int main() { char buf[1024]; FILE *fp = fopen("/etc/shells", "r"); // FILE *fp = fopen("/etc/shells", "rm"); // using mmap I/O assert(fp != NULL); f

  • GNU make 日本語訳(Coop編) - 目次

    著者 :リチャード・M・ストールマン, ローランド・マグラス (GNU プロジェクト) 訳者 : いのまた みつひろ / ecoop.net(技術メモ公開中) 翻訳文更新日:May 20, 2002(翻訳終了・未校正) Linux 標準搭載の make コマンド, 別名 gmake の日語版です。 この資料の著作権は Richard.M.Stallman & Roland.McGrath と Free Software Foundation にあり、また翻訳版には前述の著作者に加えて ecoop.net に著作権があります。再配布・転載等される方はこちらを見て下さい。 GNU Project についてはgnu.org(日語)を参照のこと。 序文はこちら GNU makeユーティリティは大きいプログラムのどの断片が再コンパイルされる必要が あるかという事と,それらを再コンパイルする発行コ

  • Main Page

    tanarky
    tanarky 2008/05/27
  • サービス終了のお知らせ

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

    tanarky
    tanarky 2008/05/13
    externについて
  • libev

    A full-featured and high-performance (see benchmark) event loop that is loosely modelled after libevent, but without its limitations and bugs. It is used in GNU Virtual Private Ethernet, rxvt-unicode, auditd, the Deliantra MORPG Server and Client, and many other programs. Blurb Features include child/pid watchers, periodic timers based on wallclock (absolute) time (in addition to timers using rela

  • C/C++ リファレンス

    tanarky
    tanarky 2007/10/26
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 第3のmemcachedクライアントライブラリ (C言語) - (ひ)メモ

    C言語のmemcachedクライアントライブラリは、 apr_memcache libmemcache の2種類が存在していたのですが、第3のライブラリがリリースされたようです。 libmemcached So why implement another C client library? (since that is the first question I expect some one to ask) 1) The libmemache library I was using for a while for the MySQL memcached storage engine leaks memory and after toying with it I decided I didn't want to fix it. 2) The APR one has the drawback

    第3のmemcachedクライアントライブラリ (C言語) - (ひ)メモ
  • regex.hの使い方

    Cの言語仕様そのものには正規表現は含まれていないので、C言語で正規表現を扱うには何らかのライブラリを利用する必要があります。ここでは、POSIX準拠のregex.hを利用して正規表現の処理を行います。 UNIXライクなOSなど、POSIX準拠のシステムであれば使用できるはずです。このページのサンプルなどはLinux上のgcc-2.96でテストを行っています。 使用方法 regex.hでの正規表現の基的な使用方法を簡単に述べると、次のようになります。 regcomp()で正規表現をコンパイル regexec()で実行 regfree()でコンパイルした正規表現を解放 多少面倒なように見えますが、正規表現ライブラリとしてはごく一般的な手順です。正規表現による検索処理の前に正規表現の文字列をコンパイルし、検索処理を行った後に処理に使ったバッファを解放する必要があります。 ということで、関数をひ

  • Using regex in C.

  • http://www.osix.net/modules/article/?id=349

  • Programming Place Plus

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

  • Cのかけら

    小さい C プログラムを集めています。自分用のメモ書きです。同じ動作をする Ruby のプログラムと比較しても、意外に複雑な処理を簡単に記述できるのに驚かされます。先輩達がなんでもかんでも C 言語で作って行ったのが分かる気がします。しかし、ポインタの操作やメモリ管理など初心者には地雷があちこちに埋まっていそうです。Ruby でできることは Ruby でやった方が安心です。 C の関数の使い方が分からなくなったら man sprintf のように man ページを参照できます。ヘッダーファイルは /usr/include/stdio.h のように /usr/include/ 以下に納められているようです。locate で探すのも便利です。Unix は C 言語の開発環境なのだというのが実感として分かります。 C のソースをスクリプト感覚で試すには

  • C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編):連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 前回は単体テストの重要性を示し、従来のC/C++でのテスト手法であるprintf関数やassertマクロを使ったテストを紹介しました。この2つのテスト手法は開発環境(コンパイラとライブラリ)さえあれば利用でき、その使い方も簡単です。しかしながら、いずれも系統立てて、効率よくテストを行うには力不足の感が否めません。 今回は、Visual C++ 2005 Express Editionを含むVisual Studio 2005(以後、VS 2005)で利用できる代表的な単体テスト・フレームワーク(Unit Test Framework)の1つである「CppUnit」を紹介します。 ■単体テスト・フレームワークとは? 前回、「バグは早期発見が望ましい。早

    C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT
  • ポインタとメモリと型(構造体)の関係 (1) - C言語 - 碧色工房

    さて、前回までに BMP 形式の読み込み、書き込みを行う関数を紹介しました。 そこで出てきた小技の説明をしたいと思います。 それにはメモリとポインタの関係についての知識が必要ですので、 ポインタの基を説明します。というかこれがすべて。 ポインタというのは C 言語が持っている一つの強力な機能です。 一方で、 C 言語初心者にとって最大の難関ともいえるものです。 しかし、これをマスターしてしまえば非常に便利で、様々な応用ができるようになります。 (実際ポインタだけで1冊のが出ているくらい奥が深いもの) まあ、いいことばかりではなくて、ポインタは使い方を誤ると非常に危険な諸刃の刃です・・・ (ポインタはバグの宝庫とまで呼ばれてたりする) あと、注意事項として以下でプログラムを書いて実行していますが。この結果は処理系依存となります。 このような結果になるという前提でプログラムを書くと、移植性

    ポインタとメモリと型(構造体)の関係 (1) - C言語 - 碧色工房
  • C言語: UNIX最速ファイルコピー

    Created: Kazuki Ohta, 2006/06/14 Last Update: Kazuki Ohta, 2006/06/14 「write(2)の正しい使い方」と同じく、OS演習でやった事の延長線の記事を書いてみる。お題は「UNIX上で大規模ファイルを最速でコピーする方法」だ。一般的に、UNIXでファイルをcopyする際には以下のような方法が有る。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> write mmap -> write with madvise read, write, mmap辺りは良いとして、posix_fadviseというシステムコールが有

  • パンダでもわかるLinuxプログラミング講座

    ホームへ   次へ 前書き Linuxでプロラムが作りたい 開発環境について GCCとXEmacsのインストール 入ってるかな?GCCとXEmacs XEmacsをデスクトップに登録 動くかなGCCとXEmacs XEmacsの設定と日本語入力 プログラムリストのカラー表示 漢字コードをEUCに変更 日本語入力(XIM編) 日本語入力(フェンスモード編) XEmacsの使い方 プログラムソースの作成と保存 C++モードを使う バッファってなに 複数プログラムファイルの編集 バッファの操作 カット、コピー、ペースト、アンドゥ C++コンパイラ(g++)の基 GCCの今と昔 g++はgccをコールしている 実行ファイル名の指定 オプション(-o) 分割コンパイル 分割コンパイルは難しい プロトタイプ宣言 分割コンパイルをやってみよう プログラムのリンク ma

  • Simple XML Configuration Library

  • ネットワーク・プログラミング/サーバ側

    システム・プログラム 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/syspro-2004/2004-05-10 あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.is.tsukuba.ac.jp/~yas/index-j.html ■今日の重要な話 TCP/IP サーバ側のプログラム tcp_acc_port() (socket()/listen()/accept()) ServerSocket() (Java) ■TCP/IPの基的な考え方 通信路の開設 ■echoサーバ TCP/IP のポート番号 7 (echo) では、受け取った