タグ

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

タグの絞り込みを解除

cに関するtyruのブックマーク (427)

  • PC�o������ | Unix�nerrno����

    �����������d���������������������o�����������B �����������Y��������������������������(*�L�D�M) Unix�n������タ�s�����G���[�����������������G���[�l���������B �R�������������������������B�B�B��������Web������������������(T_T) ��������ゥ���������������������������������������B Unix�n�������������v���O�����������������A�����I���l��-1�������A ����errno�������G���[�R�[�h�����������A�������������������

  • 2004-09-09

    googleから私の日記に、localtime_r や strtok_r, getpwnam_r などのキーワードで飛んでくる方が結構多いので、ちょっと関連する話題を書いてみます(内容の割に長い…)。 さて、8/9の日記で、POSIXのlocaltimeという関数(下記)を取り上げ、 struct tm *localtime(const time_t *timer); この関数を複数のスレッドが同時に使うと処理が破綻すると書きました。また、この関数はシグネチャが腐っているので、libcの外側でmutexを使っても処理の破綻を回避することはできず、localtime_rという代用関数を使うしかないとも書きました。POSIXで示されている代用関数(TSF)の一覧は、8/21の日記に書いた通りです。 日は視点をちょっと変えてみて、「localtimeのシグネチャは当にダメダメなのか?」に焦点

    2004-09-09
    tyru
    tyru 2009/08/27
  • 使っている処理系にstrtok_rがなかったので自作 - p95095yy's diary

    こんな感じかな。strspnとstrcspnを使います。 #include <string.h> char *strtok_r(char *str, const char *delim, char **saveptr) { size_t width; char* head; head = (NULL != str)? str: *saveptr; width = strcspn(head, delim); if(0 == width){ head += strspn(head, delim); width = strcspn(head, delim); } if('\0' == *head){ return NULL; } *saveptr = head + width + strspn(head + width, delim); *(head + width) = '\0'; retur

    使っている処理系にstrtok_rがなかったので自作 - p95095yy's diary
    tyru
    tyru 2009/08/27
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Manpage of MMAP

    Section: Linux Programmer's Manual (2) Updated: 2008-06-05 Index JM Home Page roff page 名前 mmap, munmap - ファイルやデバイスをメモリにマップ/アンマップする 書式 #include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr, size_t length); 説明 mmap() は、新しいマッピングを呼び出し元プロセスの仮想アドレス空間に作成する。 新しいマッピングの開始アドレスは addr で指定される。マッピングの長さは length 引き数で指定される。 addr が NULL の場合、カーネ

  • コンピューター:C言語講座:mmapについて

    コンピューター:C言語講座:mmapについて 概要 mmapはファイルをメモリにマッピングするものです。わかりやすく言うと、UNIXのOSが行なっているページングやスワッピングを自プロセスで行なうようなものです。 これを使うメリットとしては、メモリ確保サイズが確保開始時に決定できない場合、簡単にはmalloc()で適当な量を確保し、足りなければrealloc()を使用して拡大することになりますが、realloc()を繰り返すとメモリ領域中に空きが出来やすく、大規模なシステムでは実際使用しているメモリより空き空間の方が数倍大きくなってしまい、メモリ不足で実行不可能になる場合があります。mmapを使用すれば、別々に拡大していくような管理が可能なので、また、スワップスペースとは別の位置に置くことにより、多数の動的メモリを必要とする場合に安全に動作することが可能になる場合があります。ただし、基

  • メモリ管理

    プログラムはデータです。データを実際に解析(解釈)してみて始めて命令コー ドか単なるデータかわかります。プログラムを起動するというのは、プログラ ムファイルを解析しながらメモリの中に並べ、並べ終ったら、開始位置(Entry Point)と言いますから、命令を CPU に送り込み始めることです。 CPU は命令をメモリから順に呼んで、それを解釈して動きます。 メモリの中にプログラムがどういう風に並ぶかを理解しましょう。 プログラムの中には命令と変数があります。どちらも単なるビットの並びです。 区別は尽きません。だから分離して並べます。命令が並ぶ区画(セグメント) と変数が並ぶ区画があります。 変数には種類があります。これはどの区画に置かれて、どう管理されるかが違 うからです。変数が置かれる区画はさらに小さな区画に区分けされているとい うことです。スタック、ヒープ、グローバル(スタティックも同

  • 続・バグを生まないコーディング法 | EE Times Japan

    フォーラムでの議論は次のような発言から始まった。 「中括弧を使って複合文を記述し、文の切れ目にセミコロン「;」を使う言語では、オールマン・スタイルを使うべきではない」 私はどちらのスタイルでもよいと思っているが、「1TBSでは図2のような間違いを人間のコード・レビュワーが発見しにくい」という1TBSに対する批判は受け入れがたい。 人間のコード・レビュワーが、このような間違いを見落とす可能性があることは認める。しかし、まさにこの例は、ここで紹介するようなコーディング規則の重要性を物語っている。つまり、「バグを効果的に排除するためには、コーディング規則に強制力がなければならない。2個以上の競合する規則がそれぞれバグを防げても、それらの中の1つの規則だけが自動的に強制できる場合は、より強制力がある規則の適用が推奨される」ということだ。 われわれのコーディング規則では、上記のような例はまさに自動

  • Sufficiently Small » In C++ throw is an expression

    tyru
    tyru 2009/07/31
  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
    tyru
    tyru 2009/07/30
  • SANS - Internet Storm Center - Cooperative Cyber Threat Monitor And Alert System

    © 2024 SANS™ Internet Storm Center Developers: We have an API for you! Link To Us About Us Handlers Privacy Policy

    SANS - Internet Storm Center - Cooperative Cyber Threat Monitor And Alert System
  • AndroidアプリでC/C++のライブラリを流用可能に,Googleが開発キット投入

    Googleは米国時間2009年6月25日,携帯電話機向けソフトウエア基盤「Android」用アプリケーションの一部をC/C++言語で記述できるようにする開発キット「Android 1.5 Native Development Kit(NDK), Release 1」を公開したと発表した。 Android用アプリケーションはこれまで,Javaで記述し仮想マシン「Dalvik」で動かすしかなかった(関連記事:【続報】Androidアプリの記述言語はJava、ランタイムの仮想マシン「Dalvik」は自ら開発)。だがNDKを使うとC/C++で作ったライブラリをアプリケーションから呼び出せるようになり,既存ライブラリの流用が可能になる。C/C++ライブラリは,アプリケーション配布用のパッケージ・ファイル(.apks形式)に同こんできる。 NDKは標準Cライブラリ「libc」と標準算術演算ライブラ

    AndroidアプリでC/C++のライブラリを流用可能に,Googleが開発キット投入
  • VC10はstatic_assertをコンパイル前に評価してくれるらしい - Faith and Brave - C++で遊ぼう

    Visual C++ Team Blog - Intellisense and Browsing with C++0x コーディング時のエラー検出で、static_assertも評価するみたいです。 コンパイルすらしないテンプレートメタプログラミングができそうですね。 (IDE落ちそうだ…)

    VC10はstatic_assertをコンパイル前に評価してくれるらしい - Faith and Brave - C++で遊ぼう
  • ウノウラボ Unoh Labs: diff with C++

    ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述

    tyru
    tyru 2009/07/13
    diffのアルゴリズムの説明やライブラリ。ヘッダをインクルードするだけで使える。
  • 仮想関数テーブルを出力するには? - Seasons.NET

    gccのオプションには、-fdump-class-hierarchyというオプションがあり 各クラスの階層構造と仮想関数テーブルのレイアウトの表現をファイルに ダンプします。ファイル名は、ソースファイル名に .class を追加して作成されます。 -options 形式が使用されるなら、options は -fdump-treeと解説されています。 class Hoge { public: virtual void func(){} }; int main() { return 0; } をビルドすると、main.cpp.t01.class というファイルが作成され、中に Vtable for Hoge Hoge::_ZTV4Hoge: 3u entries 0 (int (*)(...))0 4 (int (*)(...))(& _ZTI4Hoge) 8 Hoge::func Class

    仮想関数テーブルを出力するには? - Seasons.NET
    tyru
    tyru 2009/07/12
  • #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
    tyru
    tyru 2009/07/12
  • ECMA-372 - Ecma International

    C++/CLI language specification 1st edition, December 2005 This Standard specifies requirements for implementations of the C++/CLI binding. The first such requirement is that they implement the binding, and so this Standard also defines C++/CLI. Other requirements and relaxations of the first requirement appear at various places within this Standard. C++/CLI is an extension of the C++ programming l

  • @IT:特集:Visual C++ 2005 いままたC++が熱い!「C++/CLI」として大進化したVisual C++ 2005

    重要度が高まるC++ いま一部でプログラミング言語「C++」の重要度が高まっている。ここで勘違いをされると困るので念のために強調しておくが、これは「C++の重要度は高まるだろう」という未来予測を書いているわけではない。すでに一部では重要度は高まっている、という現在の状況について書いているのである。 恐らく、このように書けば、そんなバカなと思う人も多いと思う。なぜなら、C++といえばすでに過去の言語であり、しかもJavaの誕生とともに、生産性の悪い失敗作のレッテルを張られて葬り去られたといっても過言ではないからだ。そして2005年のいま、すでにJavaすらもほころびが見える古い言語となっている。Windows環境であれば、明らかにJavaよりも生産性に優れるC#もあれば、大きく進化したVisual Basicもある。このような状況で、Javaを振り返るならともかく、それよりもさらに古いC++

    tyru
    tyru 2009/07/11
  • C++ Reference Project

    C Library The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions: <cassert> (assert.h)C Diagnostics Library (header)<cctype> (ctype.h)Character handling functions (header)<cerrno> (errno.h)C Errors (header)<cfenv> (fenv.h)F

  • cppreference.com

    CppCon 2024 It's the annual, week-long gathering for the entire C++ community. Register now!