タグ

C言語に関するokusa75のブックマーク (10)

  • gcov の使い方 - まめめも

    concov のドキュメントを書こうと思ったけれど、何から書くか困ったので、とりあえずその前に gcov の使い方とはまりどころを書いてみます。 gcov とは C 言語で書かれたプログラムのカバレッジを測定するツールです。gcc に付属しています。 基的な使い方 こういうコードがあるとする。 /* test.c */ #include <stdio.h> int foo(int x, int y) { return x + y; } int bar(int x, int y) { return x - y; } int main(void) { printf("%d\n", foo(2, 3)); printf("%d\n", foo(3, 4)); return 0; } コンパイルする。-coverage をつけると gcov 用のオブジェクトファイルが生成される *1 。 $ g

    gcov の使い方 - まめめも
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

    okusa75
    okusa75 2012/01/18
    わかりやすい。**pって*(*p)と同価だったっけなぁ?
  • send と recv と送信バッファ溢れ - utahta blog

    send と recv の使い方と送信バッファ溢れについて。 manpage Manpage of SEND Manpage of RECV SEND non-blocking の場合。 send が失敗して外部変数 errno に EINTR が設定されている場合は、再度送信を試みる必要がある。 データをソケットの送信バッファに入れることが出来ない場合、外部変数 errno に EAGAIN か EWOULDBLOCK が設定される。 いつデータが送信できるようになるかを知るために select などのシステムコールを使うことが出来る。(後述:送信バッファ溢れ) 以下、ソースコードから抜粋した send のサンプル。 int res = 0; char* p = buffer; // 送るデータ size_t len = buffer_size; // 送るデータのサイズ while(

    send と recv と送信バッファ溢れ - utahta blog
  • shared memoryを使ったプロセス間通信

    shared memory(共有メモリ)は最も原始的なプロセス間通信で、普通のメモリのようにアクセスできるメモリです。 プロセスはプロセス固有のアドレス空間を持っていますが、共有メモリに確保されたメモリは 特別の空間で、プロセス間で共有されます。 共有メモリを使うための手順。 shmget()を使って、共有メモリを作成。 shmat()を使って、共有メモリのアドレスを取得する。(アタッチ) shmdt()を使って、共有メモリから離脱。(デタッチ) shmctl()を使って、共有メモリを開放。 誰かがshmget()を使って共有メモリを作成し、その共有メモリを使いたい人は、shmat()を使って アッタチし、使用が終わったら、shmdt()でデタッチします。最後にshmctl()で共有メモリを開放します。 shmget()は以下のように宣言されています。 int shmget(key_t k

    okusa75
    okusa75 2010/08/18
    共有メモリshmget,shmatの使い方
  • Debugging with GDB - Table of Contents

    The GNU Source-Level Debugger Eighth Edition, for GDB version 5.0 March 2000 Richard Stallman, Roland Pesch, Stan Shebs, et.al. GDBの要約 フリー・ソフトウェア GDBに貢献した人々 GDBセッションのサンプル GDBの起動と終了 GDBの起動 ファイルの選択 モードの選択 GDBの終了 シェル・コマンド GDBコマンド コマンドの構文 コマンド名の補完 ヘルプの表示 GDB配下でのプログラムの実行 デバッグのためのコンパイル ユーザ・プログラムの起動 ユーザ・プログラムの引数 ユーザ・プログラムの環境 ユーザ・プログラムの作業ディレクトリ ユーザ・プログラムの入出力 既に実行中のプロセスのデバッグ 子プロセスの終了 マルチスレッド・プログラムのデバッグ マルチ

  • モスバーガー秋葉原末広町店の黒板5/14(金)昼版 - 「#include int main(void) { printf(“こんにちは!¥n“); return(0); }」モス店員、C言語で挨拶。

    モスバーガー秋葉原末広町店の黒板5/14(金)昼版 - 「#include int main(void) { printf(“こんにちは!¥n“); return(0); }」モス店員、C言語で挨拶。

    モスバーガー秋葉原末広町店の黒板5/14(金)昼版 - 「#include int main(void) { printf(“こんにちは!¥n“); return(0); }」モス店員、C言語で挨拶。
    okusa75
    okusa75 2010/05/14
    コマンドライン引数がvoidなので、スタバと違ってカスタマイズには対応していません。
  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

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

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • FFmpeg APIで、さまざまな動画を操る - 前編

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    FFmpeg APIで、さまざまな動画を操る - 前編
  • pthreadについて(概要・生成)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    pthreadについて(概要・生成)
  • 1