タグ

cに関するemergentのブックマーク (92)

  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

  • 2008年にオープンソースプロジェクトは約1万7000件、47%がCベース | OSDN Magazine

    Black Duck Softwareは1月21日(米国時間)、2008年に誕生したオープンソースプロジェクトの件数を1万7000件と発表、この中から「今年のルーキー」としてトップ10を発表した。1位は、GnutellaをベースとしたマルチネットワークWebキャッシュプロジェクト「Beacon Cache」となった。 Black Duckによると、2008年に登録または立ち上がったオープンソースプロジェクトの数は1万7000を数えるという。だが、このうちの57%はダウンロード可能なリリースが1度公開されたのみというから、すべてのプロジェクトがアクティブではないようだ。 Black Duckはこの中から、ダウンロード数やコードの行数ではなく、リリースの頻度や開発活動を評価して「ルーキー」を選んだ。リリースの品質、インフラ、アプリケーション、ツール、コンポーネントなどを持つプロジェクトを上位

    2008年にオープンソースプロジェクトは約1万7000件、47%がCベース | OSDN Magazine
  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

    emergent
    emergent 2009/01/07
    例外を実装するのに使用する
  • 構造体のサイズ違いで悩んだのでリンク時に検出 - memologue

    先日、次のようなC++のクラスが原因で少々悩みました。 struct A { #ifdef V2 int bar_; /* バージョン2以降でしか使わないメンバ変数(らしい) */ #endif int foo_; /* 以下略 */ }; このAを使っている.cppの一部は、g++ -DV2でコンパイルされており、残りは-DV2なしでコンパイルされていたのです。sizeof(A)が異なるオブジェクト同士がリンクされてしまい、まずいことになっていました。たとえば、次のようなa.hと、 // a.h struct A { #ifdef V2 int bar_; #endif int foo_; A(); int getFoo() const { return foo_; } void setFoo(int foo); }; a.cpp, main.cpp を用意して、 // a.cpp #i

    構造体のサイズ違いで悩んだのでリンク時に検出 - memologue
  • C言語を使ってRubyの拡張ライブラリを作ってみる - Watsonのメモ

    気の向くままにRubyを勉強しています。PerlにはC言語で書かれた関数を呼び出すためにXSという仕組みがありますが、Rubyはどうなんだろうかと調べてみると Ruby拡張ライブラリ に書かれていました。 作成する拡張ライブラリは以下の処理と同じものにしました。 class Hoge def add(x) return x + 1 end end 1. C言語でコーディング /* file name: sample_ext.c */ #include <ruby.h> VALUE add(VALUE self, VALUE x) { return INT2FIX(NUM2INT(x) + 1); } void Init_Hoge(void) { VALUE rb_class_hoge; /* クラス生成 */ rb_class_hoge = rb_define_class("Hoge",

    C言語を使ってRubyの拡張ライブラリを作ってみる - Watsonのメモ
  • 監視型自動makeを実現するmakeauto.pl - 動物と暮らそう

    だいぶやっつけ仕事。 適当すぎて、なにからつっこめばいいかわからない。 perlを選んだ理由がわからない。 だれか説明してくれ。 d:id:lurker:20070227:1172511851を見て、監視しつつ自動でmakeしてくれたら楽だなーと思って、ググったりして出てきたソースをパクったりして、作った。 http://nais.to/~yto/tools/miharing/ これをもろパクリしまんた>< makeじゃないコマンドも監視しつつ自動でやってくれる。 $ perl makeauto.pl -d=no -e="perl %f" test.pl とかやって使う。 僕が常用して使ってるのは $ perl makeauto.pl -d=no -e="make" *.php */*.php 別コンソールでこれ起動しつつ、Makefile書き換えながらphpの動作チェック。 ソース書きな

    監視型自動makeを実現するmakeauto.pl - 動物と暮らそう
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • GPLなJavaScriptのコードは、非フリーなソフトウェアに使えるのか ― ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

    emergent
    emergent 2008/11/21
    ライセンスの話
  • C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記

    はじめに Adobe から C/C++ で書いたコードを Flash や AIR で動かす Alchemy というものがリリースされましたね! Alchemy - Adobe Labs これはすごい!ということで、少し試してみたいと思います。 その様子をリアルタイムに書いていきます。ちゃんと出来るかな 環境 OS は Mac OS X で gcc 、 java は入っているものとします。 ホームディレクトリ(/Users/amachang)に AlchemyTest というディレクトリを作って作業します。 インストール まずは、いろいろインストールします。 Flash Player 10 Debugger Version Adobe Flash Player - Debug Downloads ここからダウンロードしてきて、普通にインストールします。 Flex SDK 以下から Flex

    C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記
  • Alchemy - Adobe Labs

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

    emergent
    emergent 2008/11/18
    C/C++をActionScript VMの上で動作させるためのコンパイラ
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    emergent
    emergent 2008/11/16
    C implementation of Cliff Click's lock-free hash table
  • Bison 2.3

    Bison This manual is for GNU Bison (version 2.3, 30 May 2006), the GNU parser generator. Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by th

  • Using GNU Autotools

    Foreword Foreword (1/2) This presentation targets developers familiar with Unix development tools (shell, make, compiler) that want to learn Autotools. The latest version of this document can be retrieved from http://www.lrde.epita.fr/~adl/autotools.html Please mail me corrections and suggestions about this document at adl@gnu.org. Do not send me any general question about the Autotools. Use the a

  • 特選フリーソフト 「GDB」― プロセス動作中にcoreファイルを出力 ―:ミラクル・リナックス

    日経Linux 2003年8月号掲載 ※掲載記事の内容とは若干異なります。 これまで Linux でできなかったこと GDB での動的 core ファイル生成 gcore.sh の使用方法 core ファイルの解析 まとめ これまで Linux でできなかったこと 様々なプログラムを開発する際、どうしても問題となるのがバグである。 プログラムの開発規模が大きくなればなるほど、また、開発者の人数が多くなればなるほど、プログラム中にバグの混入する可能性は高くなる。 何らかのソフトウェア開発を行う際には、工程として、設計、開発、そして品質を確保するための評価。という工程があるはずである。 この評価工程である程度のバグは取り除かれるが、中には取りこぼされたまま世の中にでてくるバグも存在する。 開発者としては、この取りこぼされたバグ(障害)ほど厄介なものはない。評価工程で発見できなかったため、その原

  • GCC Wikia

    さあ、スタートしよう!! 新しいウィキを始める前に、チュートリアルを御覧ください。 Help:ウィキを始めるというページにいろいろなヒントがあります。 ヘルプページがあります。わかないことがあったら、ここを調べてみてください。 このウィキには、フォーラムがあります。ここで、いろいろな人と情報交換してみてください。

    GCC Wikia
  • C言語でSingleton 2 - ココサブログ

  • Linuxカーネルの作り出す世界 − @IT自分戦略研究所

    連載は、ソフトバンククリエイティブ刊行の『ふつうのLinuxプログラミング』のうち第1部「Linuxの仕組み」の中から「第2章 Linuxカーネルの正解」と「第3章 Linuxを描き出す3つの概念」を、同社の許可を得て転載するものです。 書は、LinuxにおけるC言語プログラミングの入門書です。「Linuxの世界が何でできているのか」に着目し、「ファイルシステム」「プロセス」「ストリーム」という3つの概念を紹介しています。 なお、連載は転載を行っているため@IT自分戦略研究所の表記とは一部異なる点があります。ただし、Webで掲載するに当たり、(例えば「書は」としている部分は「連載は」としていること、図版などの省略など)、表現を若干変更している点がありますが、その点ご了承ください。 ■オペレーティングシステム 今どきのコンピュータにはオペレーティングシステム(OS:Operatin

  • 書式付入出力関数(printf 文・scanf 文)の書式 - C言語 - 碧色工房

    サイトトップ 過去のコンテンツ C言語 書式付入出力関数(printf 文・scanf 文)の書式 出力フォーマットについては、 新しく実例なども上げながら説明したページを作成したので、 以下も参照ください。 出力書式のまとめ1 出力書式のまとめ2 出力書式のまとめ3 出力書式のまとめ4 printf 文・ scanf 文ってのはC言語プログラミングする人は、初心者から上級者までお世話になる標準入出力関数です。 こいつはなかなか侮れない関数なんだな。で、その書式ってのは printf(const char *format, ...); scanf(const char *format, ...); ここで ... ってのは *format に対応した引数です。 printf の場合は変数そのまま(文字列は先頭ポインタ)、 scanf は変数のポインタです。 ってここまではいいんだけど、この

    書式付入出力関数(printf 文・scanf 文)の書式 - C言語 - 碧色工房
    emergent
    emergent 2008/08/30
    よく忘れるのでメモ
  • Rubygrind - 兼雑記

    あんま深く考えず valgrind を Ruby の head のテストに適用してみたところ、結構もにょもにょ漏れてるもんだなぁと気付いたので、いくつか修正してみたりしたのですが、その時案外困るのが、リークする最小のコードが簡単に作れない、ってことでした。 valgrind は C 言語的にどこで malloc を呼んだかは教えてくれるものの、 Ruby コードでどこだったかは教えてくれないからです。修正はできたけど具体的にどこで漏れてるかはよくわからん、ということさえありました。 というわけで、 Ruby 的にどこで漏れたかを教えてくれる valgrind 用の tool 、 Rubygrind を作ってみました。 http://shinh.skr.jp/binary/rmemcheck.tgz これを valgrind-3.3.1 のディレクトリに展開して、 > diff -u con

    Rubygrind - 兼雑記
    emergent
    emergent 2008/08/18
    valgrindのRuby用プラグイン
  • 判別分析法&世界標準画像のコネタ

    判別分析法&世界標準画像のコネタ 中途半端なエロ画像の雑学だけ書くのも何ですんで、前半は少し真面目な話でも書いちゃう (^-^; 画像処理の基処理に二値化処理があります。簡単に言うとある閾値を基準に白/黒で画像を描くこと。 「その閾値はどうやって決めるねん?」という問題が出てくるんだけど、案外、その解決は難しい。とりあえずは有名所である『 Discriminant Analysis Method:判別分析法』を簡単に紹介してみますぅ♪ Discriminant Analysis Method :判別分析法 この手法の特徴は閾値の決定が統計的手法により自動で決定できることです。 えっと、イキナリですが、HTMLで書くのしんどいんでTEXで書いたのを画像化して張っとくんで見て下さい (^-^; つーか、気で知りたい時はマトモな書籍かサイトを参考(ry 多変量解析とかの専門書なんかを見ると、