タグ

cに関するsuVeneのブックマーク (29)

  • パイプ - odz buffer

    Unix(or its variants)のシェルがどうやってるのかは知らないけど (少し前に Artonさんのところで何か見たような記憶はあるが)、 Windowsの場合は大まかに コンソール プロセスを生成して標準ハンドルをリダイレクトする方法 にあるように 入力用、出力用の二つの無名パイプを作る(CreatePipe) → それぞれを起動する子プロセスのための 標準入力、標準出力および標準エラー出力用のハンドルににDuplicateHandle → 得られたリダイレクト用のハンドルを用いて CreateProcess という手順になるので、 複数段のパイプの尻尾から順番にこのハンドルの複写手順を取りながら 必要なプロセスを起動していくのではなかろうかと。 んー cmdline.split('\|').each{|prc| ほげほげ} て感じ? おー、UNIX も Windows もあ

    パイプ - odz buffer
  • ソートの速度比較 - odz buffer

    ref: qsort - enbug diary (2007-02-10) ふむふむ、NetBSD 由来の qsort が速いと。unsigned int の要素数 10,000,000 で試してみた。表中の数字は所要時間で単位は秒。 まず、Pentium M 2GHz の coLinux on Windows の gcc-4.0 で、 コンパイルオプションは -O2 だけ。 ランダム ソート済み 逆順ソート済み 大体ソート済み qsort 5.08 4.29 4.45 4.05 pgsql 4.36 0.06 0.06 2.91 qsortG 3.29 1.70 1.81 2.11 STL 1.78 0.70 0.74 0.74 同じマシンの Windows で VC2005 で /O2 で コンパイル。 ランダム ソート済み 逆順ソート済み 大体ソート済み qsort 4.547 1.

    ソートの速度比較 - odz buffer
    suVene
    suVene 2007/02/14
    sort / STLはえーなぁ。
  • Cで実現する「ぷちオブジェクト指向」:CodeZine

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

    suVene
    suVene 2007/02/14
    『CodeZineではお初にお目にかかります、επιστημη(エピステーメー)です』 久しぶりに見た!
  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
  • 404 Blog Not Found:C - Judyでたらい回し

    2006年12月07日05:00 カテゴリLightweight Languages C - Judyでたらい回し フィボナッチ関数やたらい回し関数のような、自分を複数回呼ぶような再帰関数は、memoizeするかしないかで結果が極度に変わってくるが、これをCでやってみようという企画。 Judy Arrays Web Page Judy is a C library that provides a state-of-the-art core technology that implements a sparse dynamic array. Matzにっき(2006-06-28)とても高速なテーブル。十分高速なので、疎配列やハッシュとして使える。Cでmemoizeというのは、自分でhashを実装したりしなくてはならず大変だったが、このJudyがあれば実に簡単だ。まずは結果を見てもらおう。 %

    404 Blog Not Found:C - Judyでたらい回し
    suVene
    suVene 2006/12/07
    cで簡易ハッシュ。結構高速っぽい。
  • Namazu the full text retrieval search system

  • select()による複数のクライアントに対するサービスの同時提供

    システム・プログラム 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/syspro-2004/2004-05-10 /echo-server-select.html あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.is.tsukuba.ac.jp/~yas/index-j.html ■echo-server-select fork版 では、クライアントから接続要 求を受け付けるたびに、新しいプロセスを作っていた。以下の echo-server-select.cでは、1つのプロセスで実行している。 1: 2: /* 3: echo-serve

    suVene
    suVene 2006/08/01
  • ファイル - C 標準関数逆引き辞典

  • http://www.h7.dion.ne.jp/~matsu/feature/c-language/ipc/semaphore.html

    suVene
    suVene 2006/06/15
    セマフォサンプル
  • memologue - C++でsynchronized methodを書くのは難しい (1)

    Javaにはsynchronizedという便利なキーワードがあります。このキーワードを使うと、例えば次のように簡単にメソッドを「同期化」することができます。同期化されたメソッドは、複数のスレッドで同時に実行されることがありません。 public class Foo { ... public synchronized boolean getFoo() { ... } さて、C++ (with pthread) で同様の機能を実現するにはどうしたらよいでしょう?まず、一番単純な方法は次のようなものです。 // 方法 a void Foo::need_to_sync(void) { static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock(&mutex); // 処理 pthread_mutex_un

    memologue - C++でsynchronized methodを書くのは難しい (1)
    suVene
    suVene 2006/06/15
    mutex
  • Japanese Kanji Code ―日本語漢字コードの変換

    語漢字コードの変換 日人相手のCGIでは必ず日語をデータとして処理しなくてはなりません。 書で配布している form.cc は日語を自動的に適切に処理する ようにしてありますが、いちおう日語の処理の仕方も学んでおきましょう。 ASCII文字(英数記号等)以外の文字のコンピュータでの指定方法には色々あります。 ここでは日語の文字の指定方法の3大主流である EUC,SJIS,JIS の 日語コード間での変換プログラムを作成することを考えます。 単に日語と言っても、漢字、ひらがら、カタカナの他にも全角の英数字や ギリシャ文字、キリル文字、数学記号、グラフ記号、罫線、等があります。 さらに半角カナや半角句読点もあるので厄介です。 ● 漢字コードの種類と特徴 ■ JISコード お馴染み日工業規格 JIS(Japanse Industrial Standards) の JIS X

  • C 標準関数逆引き辞典

    suVene
    suVene 2006/05/31
    基本的なところ。文字列、メモリ、日付等
  • Cプログラミング診断室 - 藤原博文

    はじめに 開院準備 昔むかし/ レベル差/ 教育/ ネットワーク/ 情報集め/ 隠すことについて/ プログラムコンテスト/ ドキュメント/ 楽するように/ 手抜きと下手の違い/ 開院 第1部 外来 第1章 普通の初心者 最初から充実した(!?)プログラムが登場 関数を短くし、コメントを改善する 上手になる秘訣/ プログラムの紹介/ 何だ、このプログラムは!!/ 短くするには/ コメントについて/ 無駄な努力をやめよう/ 名前/ 気になる個所/ 修正プログラム/ 課題/ まとめ 第2章 これでもプロ 売りものであるにもかかわらず、超きたない! 構造的な欠陥の指摘〜引数、ポインタの活用 プログラムの紹介/ 「超」基的問題点/ 関数分解/ 構造的欠陥/ 引数を使おう/ ポインタ/ その他/ まとめ(修正プログラム) 第3章 上司が問題 まさに驚異的なプログラムの見というべき 内容の修正から、

    suVene
    suVene 2006/05/23
    初級
  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

  • コンピューターのしくみ

    いよいよCodianでもポインタについての解説をしようと思います(って言っても現時点で9割方書き終えてますが(汗))。 ポインタはC言語の根幹と言っても過言ではないアーキテクチャーです。ですから、すでにありとあらゆるで解説され、その中にはとうてい追い抜くことのできないほどの良書も数多く存在します。また、ポインタを利用したアルゴリズムもこれまた無数にあり、これをすべて解説するのはとうてい不可能です。 というわけで、他のページと同じようにCodianらしく、概念的な解説を中心に行いたいと思います。また、Codianがそうであるように、このポインタ講座もVisual C++のユーザーが読んでいるものとして書いていきます。これはよーするに「他とは違う」ということです。かなり異色に見えても大目に見てください(汗)(でも明らかな間違いがあったら教えてくださいね)。 さて、その第1回目は「コンピュータ

  • ポインタ配列にまつわる話

    ポインタは、実際には変数なので、配列にすることもできます。ここでは、ポインタ配列を動的に確保する場合の注意点や、多次元配列と動的確保によって作り出した擬似的な多次元配列との違いなどを解説します。 ポインタ配列とは 変数は配列を考えることができますね。たとえば、次の例ではchar型変数10個の配列を宣言しています。 char charray[10]; ポインタといっても変数なので、他の型と同じように配列を宣言して使うことができます。 char* chr_ptr[10]; このポインタの配列とは何なのでしょうか。2次元配列のことをポインタの配列だという人がたまにいますが、ちょっと違います。ポインタの配列は2次元配列などではなくあくまでもポインタ変数の配列で、上のように宣言したものは1次元配列です。メモリの確保のされ方からいって、2次元配列とポインタ配列は全く違うものです。 ポインタ配列とメモリ

  • 初心者のためのポイント学習C言語

    since:2002.06.02 更新に手が回らずすみません。 ANSI規格でもいいよという方は 御覧ください。m(_ _)m

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

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

  • 疑りぶかいあなたのためのオブジェクト指向再入門

    このページは、「オブジェクト指向再入門」とあるように、 オブジェクト指向を勉強しようとして挫折した人向けの文書です。 タイトルに「疑り深いあなたのための」とありますが、 これは決して揶揄して言っているわけではありません。 現在世間に蔓延しているオブジェクト指向の説明では、 むしろ納得しない方がまともだとさえ思えます。 「オブジェクト指向を使えば、生産性が飛躍的に上がり、 プログラムの見通しがよくなり、再利用性も高まる」と聞かされて、 「ホントかあ?」と思える人は、一度読んでみてください。 稿の対象読者は「既に他の手続き型言語を習得しているが、 オブジェクト指向が理解しがたいと感じている人」です。 言語としてはJavaを使用します。 手続き指向型の言語の例としては、C言語を使用します。 特にCに習熟している必要はないようにしたいのですが、 Cで言うところの「構造体」「ポインタ」「動的メモリ

  • http://homepage2.nifty.com/tenk/cgokai/cgokai.htm

    suVene
    suVene 2005/12/19