タグ

cに関するorangecloverのブックマーク (15)

  • Man page of SETJMP

    Section: Linux Programmer's Manual (3) Updated: 2014-01-07 Index JM Home Page roff page 名前 setjmp, sigsetjmp - 非局所的なジャンプのために、スタックコンテキスト (stack context) を保存する 書式 #include <setjmp.h> int setjmp(jmp_buf env); int sigsetjmp(sigjmp_buf env, int savesigs); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): setjmp(): 「注意」参照。 sigsetjmp(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE 説明 setjmp()

  • 安全なハンドル - 主題のない日記

    ポインタ C では言語がオブジェクト指向を直接には支援してくれないが、構造体を生成する関数とその構造体を操作する関数を組にして使うような形式にすることはよくあって、擬似的なオブジェクト指向と言えるだろう。 例えばごく簡単な例として整数を格納する構造体を生成する関数と構造体に格納された整数を表示する関数で表すとこういう要領だ。 // foo.h struct foo { int n; }; struct foo* make_foo(int n); void foo_print(struct foo* obj); // foo.c #include <stdio.h> #include <stdlib.h> #include "foo.h" struct foo* make_foo(int n) { struct foo* obj = malloc(sizeof(struct foo)); i

    安全なハンドル - 主題のない日記
  • ターミナルから直接実行できるC/C++のソースコードのテンプレート - Qiita

    解説 大雑把に言えばこういうことである。 g++ を起動する、シェルスクリプトとしてのソースが存在する。 これはC++から見てコメントである。 C++としてのソースが存在する。 これはシェルスクリプト部分の終了後に置いてある。 ///bin/true<<// /bin/true とヒアドキュメントを使って、特定部分のテキストをシェルから無視させる。 この部分にC++コードを入れる。 同時に、この行は // で始まるから、行コメントとしてC++コンパイラからは無視される。 E10) Why does cd // leave $PWD as //? POSIX.2, in its description of cd, says that three or more leading slashes may be replaced with a single slash when canonica

    ターミナルから直接実行できるC/C++のソースコードのテンプレート - Qiita
  • これがC言語の無限ループか - マイペースなプログラミング日記

    某所で main=-277 が(x86バイナリで)無限ループになるという話を聞いて、ためしに-277を16進数にしてみると...0xFFFFFEEB。これをリトルエンディアンで格納すると0xEBFEFFFF。なるほど0xEBFE!これは無限ループだと思い main=65259; をclangでコンパイルして実行してみると無限ループしてるっぽい。これがC言語ってやつか!

    これがC言語の無限ループか - マイペースなプログラミング日記
  • Super Technique 講座~longjmpと例外

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

  • Solaris 64 ビット 開発ガイド

  • PHPソースからフローチャートを生成する

    Visustin – Flow chart generator sofware PHPのソースからフローチャートを生成するツールです。 対応している言語はPHPの他にC/C++Java、VBといった主要な言語はもちろんのこと、さらにPerlPythonといったLL系の言語も網羅されています。(Rubyはまだのようです) デモ版でCakePHPのソース[cake/dispatcher.php]からフローチャート生成してみました。 ※デモ版ではプリントアウト・エクスポートといった出力ができないので画面をキャプチャしています。 フローチャートの他にUMLのアクティビティー図も生成できます。 ソースの規模にもよりますが、生成した図は画面で見るには大きいですし、デバッグやコードレビュー時に参考資料として使えそうなので、やはりプリントアウト機能は欲しいです。実用するには有料版を購入する必要があると

  • Binary Hacks - バイナリアン度チェック

    Binary Hacks 的な技術に精通したエンジニアのことを、専門用語で 「バイナリアン」と呼びます。 ここでは、みなさんのバイナリアン度を診断できるチェックリストを用意しました。 目次を見て、 「こんな内容はぬるい」と思った方も、 「バッドノウハウばっかり」 と思った方も、ぜひ挑戦してみてください。 診断には JavaScript が有効なブラウザが必要です。 問題は15問あります。 診断スタート

  • 使いながら覚えるGDB

    はじめに プログラムのデバッグと言えばひたすらprintfを挿入しまくっていたある日、 デバッガなる便利な代物があるということを知った。なんでもプログラムを一行 ずつ実行できて、変数の値をその場で確認できるらしい。これは是非使ってみねばと 思い、UNIX環境で使えるGDBというデバッガを試してみた。が、何がなんだかさっぱり 分からない。Webを検索するとマニュアルの日語訳が見つかった。これで勉強すれば 使えるようになるかも、と読み始めるも、いきなりm4がどうのこうのだの、意味不明 の文章が続く…。 これは私がGDBを使い始めた時の話だが、似たような経験を持っている人が他にもいる と思う。 GDBのマニュアルは初心者にはすこし敷居が高い。 GDBに限らずマニュアルというものは初学者が参考書として用いるのには 適していない。というのも、マニュアルの類は情報量が多い分、重要な部分を 見つけ出す

  • ビットを数える・探すアルゴリズム

    作成日:2004.05.04 修正日:2012.09.01 このページは 2003年の9/11、9/28 の日記をまとめて作成。 はじめに PowerPC 系や Alpha などには population count と呼ばれるレジスタ中の立っているビット数を数える命令が実装されている。 集合演算を行うライブラリを実装したい場合などに重宝しそうな命令である。 職場でこの population count 命令について話をしているうちにビットカウント操作をハードウェアで実装するのは得なのか?という点が議論になった。 CPU の設計をできるだけシンプルにするためには、複雑で使用頻度の低い命令は極力減らした方がよい。 例えば SPARC は命令セット中にビットカウント演算があるが、CPU 内には実装しないという方針をとっている(population 命令を実行すると不正命令例外が発生し、それを

    orangeclover
    orangeclover 2006/08/15
    アルゴリズム
  • Visual Studio 2005 Express Editions: Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Visual Studio 2005 Express Editions: Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う
  • システムの設計から展開までを支援するVisual Studio 2005(3)

    Visual Studio 2005 Team Systemの中で最も目新しい機能が,Visual Studio 2005 Team Architect Editionに実装されるモデリング機能「Distributed System Designers」である。具体的には,(1)「Application Connection Designer」,(2)「Logical Datacenter Designer」,(3)「Deployment Designer」――の3つのモデリング機能を使って,分散アプリケーションの論理構成,サーバー構成,配置を設計する機能だ。具体的な機能や操作方法は次の通りである。 Visual Studioの[New Project]メニューで[Distributed System Solution]プロジェクトを作ると,Application Connection D

    システムの設計から展開までを支援するVisual Studio 2005(3)
    orangeclover
    orangeclover 2006/07/20
    Visual Studio 2005
  • システムの設計から展開までを支援するVisual Studio 2005(2)

    図2●Visual Studio 2005 Team Foundationの開発プロジェクト・ポータル・サイト 改変されたコードの割合など,プロジェクトの進ちょく状況などをグラフ表示できる。図は開発中のもので,2005年春に公開予定のベータ2版や製品版では変更されることがある。 図3●Visual Studio 2005 Team Architectが備えるプロジェクト管理機能 Visual Studioの開発環境だけでなく,Excel 2003やProject 2003でも管理できる。 Visual Studio 2005 Team Developer Editionは開発者(デベロッパ)のための製品である。ソース・コードの分析機能やプロファイリング*機能が開発環境に統合されている。コードの分析機能はコンパイル時に働き,セキュリティ上問題が生じる恐れがある部分に警告を出したり,より性能の

    システムの設計から展開までを支援するVisual Studio 2005(2)
    orangeclover
    orangeclover 2006/07/20
    Visual Studio 2005
  • システムの設計から展開までを支援するVisual Studio 2005(1)

    ■2005年内に出荷が予定されているVisual Studio 2005の製品系列は,チーム開発機能を備えるVisual Studio 2005 Team System,従来と同様,コーディングとデバッグの機能だけを備えるVisual Studio 2005,言語単体製品のVisual Studio 2005 Expressの大きく分けて3つが用意される。 ■そのうちのTeam Systemは,これまでのコーディングやデバッグに加えて,モデリング,コード分析,テスト,開発チーム間のコミュニケーションなど,チーム開発のための機能が備わる。システムの設計から展開までを支援することで,システム構築の手法を効率化する狙いだ。 2005年後半,マイクロソフトの開発ツール「Visual Studio」は,大幅にバージョンアップされる予定だ。これまでのVisual Studioは,主にコーディングとデバ

    システムの設計から展開までを支援するVisual Studio 2005(1)
    orangeclover
    orangeclover 2006/07/20
    Visual Studio 2005
  • Amazon.co.jp: カーニハン&リッチー『プログラミング言語C』を読む (KS): 小林健一郎: 本

    Amazon.co.jp: カーニハン&リッチー『プログラミング言語C』を読む (KS): 小林健一郎: 本
  • 1