タグ

C_Langに関するgologo13のブックマーク (13)

  • GCC 解読室 Wiki*

    Wikiaへ引越し Wikiaへ引っ越す事になりました。 新しくページを作る時はWikiaの方にお願いします。 ▲ ▼ FrontPage GCC のソースコードをひらメソッドで読んでいこうかと思っています. GCC は,最も歴史が古く,よってたかって世界中の スーパハカー に知恵と技術の限りを尽くして叩かれ続け,今では全てのフリーソフトウェアの礎石となっている,地球が宇宙に誇れるプログラム ((c) shinichiro_h さん & wo さん) です.ぜひあなたも一緒に,この難攻不落の要塞に挑んでみませんか ? 私 (管理人 あろは) は,とりあえず今の所,フロントエンドが何をやっているのか (GCC の内部データ表現形式である木構造,GENERICTree と GIMPLE Tree がどのようにして生成されるのか) を理解したいです. (RTL を含む,ターゲットア

  • ライブラリ関数一覧

    標準ライブラリ関数については 第7章 で簡単に触れましたが、ここでは第7章では扱わなかったANSI標準ライブラリ関数を、簡単な用例も示して詳しく説明することにします。 なお、下記の「☆」はこの付録での書き下ろし、「○」は編へのリンクを示します。 【時刻・日付管理関数】 ヘッダ: time.h ※関数名説明

  • mapee.jp

    This domain may be for sale!

  • Bal4u : C/UVa - C言語・文字列照合 Archive

    スパムメールの判定や、文字列のあいまい検索等では、文字列間の違いを効率よく判定するアルゴリズムが必要。ここではその紹介。 「文字列間の距離 (String Distance) とは、2つの文字列間の違いを測る尺度。文字を挿入したり、削除したり、置き換えたりして、2つの文字列を等しくするまでの最小の操作の数でもある。」 例えば、computer と commuter。 pをmに置き換える(あるいは逆、mをpにする)だけで、全く同じ文字列になるので、二つの文字列間の距離は1となる。操作なしでは同等にならないので、1が最小操作数でもあるわけだ。 例えば、sport と sort。 左のsportから s を削除すれば、右のsortになるし、右のsortにpを挿入すると左になる。したがって、文字列間の距離は1となる。 <文字列間距離d の再帰的定義> d("", "") = 0     ← 空文

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

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

  • 関数内で寿命が尽きる変数 - 苦しんで覚えるC言語

    前章では関数について説明しましたが、関数と変数の関係は説明しませんでした。 ここでは、カウント関数を作り、それを元に関数と変数の関係を説明します。 カウント関数とは、呼び出された回数を数える関数のことです。 とくにそのような用語があるわけではありませんが、便宜上そのように呼びます。 単純に考えれば、それはかなり簡単に実現できます。 変数を用意して、それに毎回1足していけば良いだけのことです。 次のプログラムは、上記の考えをそのまま実現した例です。 #include <stdio.h> int countfunc(void); int main(void) { countfunc(); countfunc(); countfunc(); return 0; } int countfunc(void) { int count = 0; /* 初期化 */ count++; printf("%d

    関数内で寿命が尽きる変数 - 苦しんで覚えるC言語
    gologo13
    gologo13 2010/04/26
    これは驚いた…明示的なブロックで変数のスコープを操作できる
  • mapee.jp

    This domain may be for sale!

  • ncurses マニュアル

    CUIにおいて,スクリーンや,キー入力,カーソルなどを管理するライブラリです. このライブラリを利用することで,CUIベースでダイアログを出したり,いろいろ出来るようです. ここでは,自分で使うと思った関数のみ簡単な説明を書いています. このページは,BSDのマニュアルを参考に,私が解釈したものです. 間違っているかもしれませんので,自己責任で参考にしてください. より詳しく知りたい場合は,BSDのマニュアルを見て下さい. ヘッダファイルncurses.hのインクルードとライブラリncurses.aのリンクが必要です #include <ncurses.h> -lncurses 使い方 作成 initscr もしくは newterm 設定 少なくともcbreak もしくは nocbreakを呼び出すべき. 利用 後処理 endwinで端末のリセットとカーソルを左下に移動する. また,必要に

  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:整数オーバーフロー攻撃対策

    C言語やC++においては、整数演算がオーバーフローを起こしたり、ビット幅の少ない変数への代入によって上位ビットが失われても処理系がそれを誤りとして検出しないことが多い。このことが、整数オーバーフロー問題を起こりやすくしている。 整数オーバーフロー攻撃は、二進数の整数演算結果が予定外の値を生むケースを悪用し、侵入コードの送り込みと実行をもくろむものである。 この攻撃が成立すると、任意のマシンコードが実行され、最悪の場合攻撃者にコンピュータの管理者権限を取得される。軽くても、標的プログラムがサービス不能状態に陥ることが考えられる。 攻撃のメカニズムはつぎのようなものである──攻撃者はデータ配置のオフセットや転記データ長として、予定外の符号の値あるいは範囲を超えた値を生じさせるよう整数演算を誘導し、それを利用してメモリ上に攻撃コードを送り込む。それとともに関数の戻りアド レスやプログラムが使って

  • シグナルと例外の違い

    まず、C言語の標準規格では、signalおよびraise関数が規定されています。すなわち、言語仕様の中にシグナルが含まれています。ただし、言語そのものではなく、ライブラリとして実現しています。 標準規格で規定されているシグナルのうち、非同期で発生する可能性があるのはSIGINTだけですが、これもどんな風に実装されるかは処理系定義ですし、raise関数を用いてのみ発生させることができる仕様であったとしても規格の要件は満たしています。 そして、これら標準ライブラリの実現方法は、OSの機能を使ってもよいですし、使わなくても構いません。 シグナルというものは、ある事象が発生したときに、単に特定の関数を呼び出すだけです。raiseまたはabortの結果としてシグナルハンドラが呼び出された場合を除き、longjmpで脱出することも、exitやabortで終了することもできません。もちろん、シグナルハン

    シグナルと例外の違い
  • C言語 Super Technique 講座

    このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用

  • tips : tips/02.プログラミングなど/C言語/C言語のLinux環境.txt

    gccとかgdbとかgoogle-perftoolsとか、C言語のLinux環境関連のメモ コンパイル # バージョンを確認する gcc -dumpversion # オプションつけないでコンパイル gcc xxx.c → a.out という名前の実行ファイルが出来る。実行権限もつけてくれるようだ。 # 実行ファイル名を指定したいとき gcc -o xxx xxx.c → xxx という名前の実行ファイルが出来る # その他のオプション -Wall : 警告を全部みせる -O1 (-O)  : ゆるい最適化 -O2       : 普通の最適化 (普通はこれをつかうそうだ) -O3       : 強力な最適化 (コンパイラのバグを引き当てたりするそうだ) -g (== -g2) : デバッグ用のシンボル -g3         : マクロも展開する -g

  • C言語

    C言語をやってみよう,ふと思い立った.かなり久しぶりだ.大学当時Cは講義であった.学生時代怠けまくった結果(?)私はCよりも,趣味でやっていたJavaの方が書いたコードの行数は多い.だが,やはり「たしなみ」としてC言語はやっておかねばなるまい. 基(?)ライブラリ編 プロセス制御 シグナル パイプ IPC Pthread Socket 端末制御 curses CUnit OpenSSLを使用したCプログラミング その他 基(?)ライブラリ編とりあえず,ライブラリにある関数をいろいろ試してみる.もちろん(?)Debian環境で. ファイル操作 2003-07-20T15:13+09:00 matsu GNU/Linuxシステムでのファイル操作について.ここでは特にシステムコールを用いてファイル操作する方法について. 標準入出力ライブラリでのファイル操作 2003-07-20T15:13+

    gologo13
    gologo13 2010/04/04
    細かい部分まで載ってる
  • 1