タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとCとprogrammingに関するjjzakのブックマーク (242)

  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

  • メモリリーク調査方法(Linux編)

    まずはLinuxの環境変数の設定から... $> export MALLOC_TRACE="log file name" 次にソースコードの編集 ◆ ヘッダのインクルード #include <mcheck.h> 次にソースにメモリチェックする部分に以下のコードを追加 mtrace();←メモリチェック開始 muntrace();←メモリチェック終了 ◆ 実行 以下のようなコードを実行する int main () { mtrace(); char* test = new char[10]; test = new char[10]; delete[] test; Test t = new Test (); muntrace(); } ◆ 結果 これを実行すると以下のようなログが指定したログファイルに 記述されます。(実際には値などは違います) = Start @ /usr

  • Cのプログラムの中でブレークポイントを設定する - bkブログ

    Cのプログラムの中でブレークポイントを設定する Cのプログラムをデバッグする際には GDB などのデバッガが役立ちます。通常、ブレークポイントはデバッガの中から設定しますが、デバッグ対象のCのプログラムの中で設定することもできます。 Linux なら #include <signal.h> して、任意の箇所に raise(SIGTRAP); を挿入すれば OK です。 raise() 関数を用いて SIGTRAP シグナルを発生させています。 あるいは x86 限定なら __asm__("int3"); でも OK です。ここでは SIGTRAP を発生させるために int3 (0xcc) 命令を埋め込んでいます。GDB もソフトウェア的にブレークポイントを設定するときは当該箇所に int3 を書き込んでいるので、やっていることは割と似ています (GDBの場合は int3 を書き込む部分の

  • 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ

    普通のやつらの下を行け: Cで動的コード生成・実行 スクリプト言語には動的にコードを生成して実行する機能を持ったものが多くあります。 普通のやつらの下を行けの第3回として、今回は C による動的なコード生成と実行に取り組んでみたいと思います。 今回書いたコードの main() 関数は以下のようなものです。 int main(int argc, char **argv) { assert(argc == 2); define(int, add, (int x, int y), "{ return x + y; }"); define(int, mul, (int x, int y), "{ return x * y; }"); define(int, add_argv1, (int x), "{ return x + %d; }", atoi(argv[1])); printf("%d\n"

  • Cプログラミングのメモ

    CODE COMPLETE によると、プログラミングを上達するには日頃から よく読むこと (マニュアル・書籍・他人のソースコードなど) とよ く考えることが肝要だそうです。 何か耳寄りな情報があれば教えてくださいませ。 (ページの内容はかなり古くなっています) 目次 書籍 インターネット上の文書 ライブラリ ツール メモリプロファイラ GTK+/GNOME関連 その他 書籍 書籍の情報は 別の場所に移しました。 インターネット上の文書 Programming in C * C言語についての網羅的な情報源。 Steve Summit: C Programming FAQs: Frequently Asked Questions * 書籍版の 3/4ほどの内容。 情報源: Web版, 日語訳, 日語訳のHTML版 Henry Spencer: The Ten Commandments f

  • http://www.ccn.aitai.ne.jp/~ccc/linux.html

  • ライブラリの外に公開するシンボルを制限する - bkブログ

    ライブラリの外に公開するシンボルを制限する C言語にはファイル内 (コンパイル単位) からしかアクセスできない static 関数と、別のファイルからもアクセスできる非static 関数があります。しかし、ライブラリを作成する上では、この2つのスコープだけでは不十分なときがあります。 記事では GNUの開発環境において、ライブラリの外に公開するシンボルを制限する方法を紹介します。 次のような例を考えてみます。 % cat a.c // foo() は libfoo の主役の関数なので公開したい void foo() { bar(); } % cat b.c // bar() はライブラリの中だけで使われるべきなので当は公開 // したくない。しかし別のファイルに含まれる foo() から使われ // ているので、非staticにせざるをえない void bar() { } このようなコ

  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

  • スタックオーバーフローのハンドリング (Stack Overflow Handling)

    作成日:2004.04.12 更新日:2006.02.19 更新記録 (2004.04.12) 3/6、 3/11、 3/13 の日記をまとめて作成。 (2004.05.07) 文章を修正。サンプルコードを追加。 (2005.01.20) alternative → alterante に修正。 (2005.02.13) 追記を記述。 (2006.02.17) linux_stack_info.cpp の実装に誤りがあったので修正。 (2006.02.19) BSD 系OS でのスタック領域情報の取得の仕方を追加 初めに C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。 最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。 だが、再帰や alloca を積極的に使

  • [pdf]Swing実習マニュアル 大黒学

    大阪にはキャバクラが多い街として「キタ」と「ミナミ」があるんです。 この2つの街にはいろんなキャバクラがあるし、競合店が多いことから他のエリアより時給相場が高い上、新規のお客さんも来店しやすい。 だから、関西のキャバクラで働く上で、キタ、もしくはミナミのキャバクラを選ぶことがすごくおすすめ! けど、そうは言っても「じゃあキタとミナミだったらどっちの方が良いの?」って思う方もいるかもしれませんよね(笑) なのでここでは、大阪のキタとミナミのキャバ嬢目線から見た違いについて解説していきます! 大阪のキャバクラ「キタ」と「ミナミ」の違い では大阪のキタとミナミには、キャバクラにどんな違いがあるのか、各項目に分けて紹介していきます! 大阪のキャバクラで頑張って働いていこうと思ってる方は、自分の目的やキャバ嬢としてのキャリアに合ったお店を選んでくださいね! お給料 まずはお給料について。お給料は、大

    jjzak
    jjzak 2006/11/06
    [][][prolog][functional][ml]
  • Haskell for C Programmers

    Haskell Tutorial for C Programmers - Introduction Written by Eric Etheridge last updated January 3, 2007 Table of Contents Each major section has its own page. Introduction Abstract Downloads Purpose and Other Online References Relationship to Our Other Tutorials Preface and Style Notes Section I: What the Heck is Going On? Part I: Haskell's Oddity Part II: Input and Output Part III: Very Bas

  • ジェネリックプログラミングの技術

    この文書は boost ライブラリで用いられている ジェネリックプログラミングの技術に関する、未完成の調査報告です。 Table of Contents イントロダクション 概念 (concept) の詳細 特性 (traits) タグディスパッチ アダプタ (adaptor) 型生成子 オブジェクト生成子 ポリシークラス イントロダクション ジェネリックプログラミングはソフトウェアコンポーネントを汎用化すること であり、それによってコンポーネントが多様な状況下で簡単に再利用できるよう になります。C++ ではテンプレートクラスとテンプレート関数が特に効果的な仕 組みです。なぜならばテンプレートは効率を犠牲にせずに汎用化を可能にするか らです。 ジェネリックプログラミングの例として、C 標準ライブラリ関数の memcpy()を汎用化する方法を見てみます。

  • サービス終了のお知らせ

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

  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • cmagazine.jp | Just another WordPress site

    すごい視聴率だと話題になっていたコンビニの経営を観たら、出演している加盟店のファンになってしまったんです。そこで自分も地元香川でフランチャイズ加盟をしてコンビニを経営してみたいなと思うようになりました。 https://www.sej.co.jp/owner/area/market/kagawa.php >>Read more

  • 私は如何にして心配するのを止めてUNIXカーネルを愛するようになったか

    Most pages here are written in Japanese. Some pages are in English. UNIXカーネル(第6版) ソースコードには 「You are not expected to understand this.」 (これがわからなくてもべつにかまわない)という木で鼻をくくったようなコメントがある。 Jargon Dictionaryの見出し語にもあるように、UNIXに関するきわめつけの逸話である。 Lionsとよばれる後述の注釈では2238行に位置するこのコメントに対応する部分を理解すると「2238クラブに入れる」との記述がある。 ちょっと注意 このページは UNIXをひととおり使える C言語でプログラムが組める アセンブラも多少は何とかなる 必要とあらば英語の文献を読むこともいとわない をすべてみたす人を読者に想定している。 部分

  • 目指せプログラマー!

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • http://www1.kcn.ne.jp/~robe/pf/index.html

  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 こんなことやって意味あるのかどうか正直言って迷いました。プログラマはたいてい知っているような内容だし見る人もいないんじゃないかと思いましたが、これからプログラミングを始めてみようという方にとっては参考になるかもしれないし、何よりも自分にとって頭の中を整理できたりするので、これから定期的にやっていこうかと考えてます。 ところで、紹介する内容はほとんど過去に出版された書物関係から抜粋しています。一応下の方に参考文献として挙げておきますので興味を持たれた方は書店などで探してみてはいかがでしょうか? ということで、まずはライン・ルーチン(画面に直線を描画する)についての紹介です。

    jjzak
    jjzak 2006/11/06
  • <h2>C言語によるアルゴリズム(コメント付き)</h2>