タグ

C++とCに関するohnishiakiraのブックマーク (9)

  • cmakeツール最初の一歩 - torutkのブログ

    UNIXでは、C/C++のソースコードをビルドするにはMakefileを書いてmakeツールを使うのが一般的です。しかし、Makefileを書くのは大変なので*1、もっと楽なツールを探すと出てくるものの一つがcmakeです*2。 cmakeのインストール(CentOS 5.2) # yum install cmake でインストールできます。 Hello, worldプログラムをcmakeでビルドする ビルド設定は、CMakeLists.txtという名前のファイルに記述します。とりあえずソースファイルと同じディレクトリに以下の内容で作成します。 CMakeLists.txtの作成 PROJECT(HelloWorld) ADD_EXECUTABLE(hello hello.cpp) cmakeコマンド実行 以下コマンドを実行します。 hello$ cmake . -- Check for

    cmakeツール最初の一歩 - torutkのブログ
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • 第1回 関数フローの採取 | gihyo.jp

    はじめに DTrace とは 皆さんは DTrace をご存知でしょうか? DTrace は Sun Microsystems のブライアン・キャントリル(Bryan Cantrill)氏によって開発された、汎用情報採取のフレームワークです。 キャントリル氏へのインタビューでも語られているように、カーネルの動作状況を調査/確認することは、これまで非常に困難な作業でした。 しかし、DTrace の登場により、実際に稼動中のシステムのカーネルからも、安全に(かつ低コストで)情報を採取できるようになりました。 また、DTraceによって解析が容易になったことで、これまで解決することができなかったSolarisカーネルの(潜在的だったものも含めた)実装上の問題も、多数改善することができたのだそうです。 カーネル開発に関わったことがある方ならもちろん、通常のアプリケーション開発であっても、次のような

    第1回 関数フローの採取 | gihyo.jp
    ohnishiakira
    ohnishiakira 2010/03/04
    "DTrace は Sun Microsystems のブライアン・キャントリル(Bryan Cantrill)氏によって開発された,汎用情報採取のフレームワークです。"
  • C/C++ から Ruby を動的に扱う « ますぽんの雑記

    RubyPython とよく比較される国産のインタプリタ言語で、文字列の扱いに定評があります。オブジェクト指向で、モジュール、クラス、例外処理、ガベージコレクション等最新の機能は一通り揃った魅力ある言語です。今回は、これを前回と同じように C/C++ から動的に扱ってみます。まずは、C/C++ から Ruby スクリプトを呼んでみます。 #include <Ruby/ruby.h> const char *script = "def multiply(x,y)\n" " return x*y\n" "end"; int main(int argc, char *argv[]) { VALUE value; ruby_init(); // スクリプトの読み込み rb_eval_string(script); // スクリプトの実行 value = rb_funcall(Qnil,rb_

  • #if 0ハックすごくね?すげーってw - Seasons.NET

    #If 0ってC,C++では、#endifまで問答無用でコメントにしますが、 これを使ったハックがすごく便利。 元ネタ http://gpwiki.org/index.php/SDL:Tutorial:Using_SDL_net #if 0 #!/bin/sh gcc -o a a.c exit #endif int main( void ) { printf( "Hello\n"); return 1; } これを保存して、実行属性をつけてから(chmod 755とか) ターミナルで、 # ./a.c と打ち込むと、 aという実行ファイルが生成される。 んで、./aと打ち込むと Helloと表示される。 今までは、Makefileか直接、gcc -o a a.cとかやっていた作業が、 ソースコード+Makefileの代わりになるわけ。 なぜこんな事ができるかってーと、 shのシェルスクリ

    #if 0ハックすごくね?すげーってw - Seasons.NET
  • C/C++ リファレンス

  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
    ohnishiakira
    ohnishiakira 2009/04/28
    C/C++ セキュアコーディングセミナー資料
  • CとC++の動的メモリー管理(1)、malloc関数とnew演算子の違いを知る(1/3) ― EE Times Japan

    CとC++の動的メモリー管理(1)、malloc関数とnew演算子の違いを知る(2009/04/24公開) C言語とC++言語では、動的にメモリーを確保したり解放したりする手法は異なり、それぞれ長所と短所がある。もちろん、安全性を最重要視する組み込み機器では、動的に確保したメモリーを利用すべきでないという考え方には心から賛同する。リスクが利点を上回ってしまうからだ。しかし場合によっては、動的なメモリーを適切に管理することで改善できることも多いのではないかとも考えている。 C言語やC++言語に標準的に用意されているメモリー管理向け関数の動作が意図した通りでない場合は、メモリー管理関数を独自に開発するとよい。独自のメモリー管理関数の仕様と振る舞いは、できる限り標準関数と同じにすることが理想である。標準関数のメモリー管理方法と違ってしまう場合でも、関数の引数と返り値の数と型は、可能な限り標準

  • CERT Secure Coding Books

  • 1