タグ

Cに関するgemini7のブックマーク (39)

  • Rustこそがシステムプログラミングの未来(で、C言語はもはやアセンブリ相当)なら、Rustで書かれたドライバのコードをLinuxカーネルは受け入れるべきなのか? - YAMDAS現更新履歴

    Intel の主席エンジニアの Josh Triplett の Open Source Technology Summit 2019 での講演 Intel and Rust: the Future of Systems Programming を取り上げ、Rust こそがシステムプログラミングの未来であり、C 言語はもはやかつてのアセンブリ言語である。つまり、未だに OS などのシステムプログラミングの大部分で使われる C 言語は Rust に置き換えられるのではないかと見る記事である。 「Cを愛して…」という文章をワタシが訳したのももはや10年以上前、C が他言語に置き換えられる未来が遂に来るのかと遠い目になってしまう。もっともワタシ自身、4年近く C 言語でコーディングしてないんだよね……。 でも、当にそうなるのだろうか? 手近なシステムプログラミングの現場である Linux カーネ

    Rustこそがシステムプログラミングの未来(で、C言語はもはやアセンブリ相当)なら、Rustで書かれたドライバのコードをLinuxカーネルは受け入れるべきなのか? - YAMDAS現更新履歴
  • 問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ

    問.Cでオブジェクト指向プログラミングを行なえ。ただし「オブジェクト指向プログラミング」とは、次のような特徴を持つプログラミング技法であるものとする: オブジェクトの実装はオブジェクトのユーザーからは隠蔽される(カプセル化/隠蔽) 同一型のオブジェクトと同一メソッドを与えた時、実際のメソッドの動作はオブジェクトの内容により変化する(ポリモーフィズム/多態性) なお、ユーザーが既存のオブジェクトをカスタマイズして新たなオブジェクトを作成する機能は、必要ないものとする。 この問いの狙い よく、「オブジェクト指向プログラミング」と「オブジェクト指向言語」は混同されます。が、前者はプログラムを設計する上での考え方で、後者はその考え方を容易にソースコードに書けるような仕様になっている言語の事で、全く違うものを指しています。 その証拠を示すため、「非オブジェクト指向言語」たるC言語で「オブジェクト指向

    問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ
  • C Magazineが電子書籍で復刻! - WWW.SBCR.JP トピックス

    コンピュータ勃興期の1989年9月に創刊しました『C Magazine』が電子書籍として帰ってきました! 1989年はNEC PC-98シリーズ全盛であり、東芝のダイナブックシリーズの初代が発売された年でもありました。 『C Magzine』は人気プログラミング雑誌として刊行を続け、2006年4月号を最後に休刊になりました。刊行冊数は199冊にもなり、日プログラマーに長く愛された雑誌であることは間違いありません。 人気連載を担当されていた方の多くは、現在も当社各種IT書籍の執筆陣として活躍しています。 今回は愛読者だった方からの熱い要望に答える形で電子書籍として復刻致します! ■配信フォーマット 電子書籍版はEPUB固定フォーマットか、PDF(準備中)での販売を行います。また、今回配信するのは創刊から100号までになります。 ■ご注意 1)この電子書籍は紙の印刷物をスキャンしたデータを

    C Magazineが電子書籍で復刻! - WWW.SBCR.JP トピックス
  • パワーポイントでC言語プログラミング

    どこの会社もそうですが、パワーポイントの資料作るのが得意なエンジニアはたくさんいるのですが、実際にプログラムでコードを作るのが得意なエンジニアはあまりいなくて、当に困ります。

    パワーポイントでC言語プログラミング
    gemini7
    gemini7 2013/04/19
    Excel方眼紙でCOBOL処理系だれかつくってー
  • Throw The Switch! - White Papers

  • ポインタの裏話

    ポインタの裏話 岡﨑 直観 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg ポインタの裏話 プログラミング演習A 1 このような説明を 覚えていますか? 知らなくても全く問題ありません ポインタの裏話 プログラミング演習A 2 int x = 0; &xは変数xの「アドレス」 「番地」「住所」を返す 変数x 0 &x メモリ空間, 記憶空間 変数xのアド レス(住所) ポインタの裏話 プログラミング演習A 3 ____ / \ 何言ってたんだこいつ? / ⌒ ⌒\ 番地 アドレス ぬるぽ / (●) (●) \ \ / | 、“ ゙)(__人__)" ) __________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | || / , \n||

  • GitHub - katono/PCUnit: Portable C Unit Testing Framework

    <title>PCUnit - Portable C Unit Testing Framework</title> PCUnit - Portable C Unit Testing Framework 概要 PCUnitはC言語/C++言語でテスト駆動開発(Test-Driven Development; TDD)や単体テストをするための ポータブルでコンパクトなユニットテストフレームワークです。 PCUnitは以下のような特長があります。 機能 CUnitライクなアサートマクロをサポートします。 アサートマクロで失敗した内容を表示できます。さらにprintf形式で追加メッセージを表示できます。 テストフィクスチャ(setup, teardown, initialize, cleanup)をサポートします。 1つのテストを繰り返し行うRepeatedTestをサポートします。これを利用して

    GitHub - katono/PCUnit: Portable C Unit Testing Framework
    gemini7
    gemini7 2012/05/31
    C/C++組み込み開発でTDDや単体テストをするためのフレームワーク。
  • AdLint

    AdLint is a source code static analyzer. It can point out insecure or nonportable code fragments, and can measure various quality metrics of the source code. It (currently) can analyze source code compliant with ANSI C89 / ISO C90 and partly ISO C99. AdLint is written in Ruby. So, it is available for Windows, Mac OS X, GNU/Linux, FreeBSD and any other platforms supported by Ruby. Features Can poin

    gemini7
    gemini7 2012/03/22
    オープンソースで無償のCソースコード静的解析ツール
  • Automakeでmakeする

    [ C++で開発 ] Automakeでmakeする GNU Automakeを使用すると、簡単な記述でMakefileを生成してくれます。類似ツールにimakeがありますが、imakeは事実上X Window Systemの一部となっており、Xアプリケーション用に調整されているので、非Xな環境やアプリケーション開発に使う際にはやや面倒です。 Automakeの超簡単原理 Automakeは、makeコマンドでビルドするための設定記述ファイルMakefileを、極めて簡単に記述するためのツールです。通常Makefileには、コンパイルする際の諸設定、リンクする際の諸設定、処理順序などを逐一記述しておかなくてはなりません。これは、よっぽどMakefileに慣れていないと苦痛ですし、慣れていても面倒な作業です。そこで、Makefileよりもずっと簡単な設定ファイルMakefile.amだけを記

  • Writing a C library, intro, conclusion and errata

    This is a series of blog-posts about best practices for writing C libraries. See below for each part and the topics covered. Table of contentsThe entire series about best practices for writing C libraries covered 15 topics and was written over five parts posted over the course of approximately one week. Feel free to hotlink directly to each topic but please keep in mind that the content (like any

  • 初心者への GNU perf のススメ

    Last modified: Mon Oct 29 15:01:59 JST 2018 初心者への GNU perf のススメ Lynx Optimized Pages! 50287 accesses since 2001/07/27. 6 accesses per day. [ TOP ] 目次: 初めての gperf (1) …簡単なプログラムを作ってみる 初めての gperf (2) 初めての gperf (3) …文字の重複問題を解決する gperf 実用編(1) …構造体にアクセスする gperf 実用編(2) …構造体の初期化 gperf が出力したソースコードの権利について 終わりに 初めての gperf (1) 一部から完全ハッシュ関数を作るツール gperf の使い方を知りたい、というリクエストが あったので、軽く説明してみようと思います。 (深く突っ込めないという話も。

  • Eclipse用C言語コーディングスタイルチェックプラグイン『KariyaSiesta』をリリースしました - みずぴー日記

    伊東まで開発合宿に行って、みんなでC言語のコーディングスタイルチェッカーを作ってました。 => KariyaSiesta | C 言語向けのコーディングチェッカ 配布サイトも作りました。 ルールを簡単にカスタマイズできるようになってるので、みんな使うといいでゲソ。 特徴 Eclipseのプラグインとして使える Eclipseプラグインとして実装されているので、IDEで使えます。 もちろんCDTとも組合せることができます。 簡単イントール 更新サイトから簡単にインストールできます。 もちろん自動アップデートにも対応してます。 XPathでルールで書ける ルールはXPathで書くことができます。 例えば『whileの内でbreakを使ってはいけない』というルールは以下のようになります。 こまかい書き方はマニュアルを参考にしてください。 //Stmt[@sort="While" and .//k

    Eclipse用C言語コーディングスタイルチェックプラグイン『KariyaSiesta』をリリースしました - みずぴー日記
  • ISO/IEC 9899:1999

    WG14/N1256 Committee Draft — Septermber 7, 2007 ISO/IEC 9899:TC3 Contents Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv 1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Normative references . . . . . . . . . . . . . . . . . . . . . . . 2 3. Terms, definitions, and symbols . . . .

    gemini7
    gemini7 2010/12/07
  • C言語系/memos/gettext - Glamenv-Septzen.net

    id: 488 所有者: msakamoto-sf 作成日: 2009-11-18 16:05:11 カテゴリ: C言語 Linux [ Prev ] [ Next ] [ C言語系 ] GNU gettext の自分用メモ GNU gettext 家 http://www.gnu.org/software/gettext/ GNU gettext HTMLドキュメント(1ページ版) http://www.gnu.org/software/gettext/manual/gettext.html的な流れ最初のソースコード準備からpoファイル作成、moファイルへのコンパイルと配置まで"xgettext"で検出する為のマクロ定義を埋め込み、翻訳対象文字列に適用する。 setlocale()など必要な前処理の呼び出しと、コンパイルして一旦Cロカールで動作確認 xgettextでメッセージを

    gemini7
    gemini7 2010/07/09
    gettextでの国際化手順のまとめ
  • GNU <CODE>gettext</CODE>ユーティリティ:

  • gettext - Wikipedia

    gettextは国際化と地域化に対応するライブラリ構成要素の一つであり、様々な地域の言語に対応した地域化ソフトウェアを開発する際に用いられる。gettextライブラリを用いることで、ソフトウェアの対話的メッセージを翻訳された現地語にて容易に表示させることができる。 gettextによるソフトウェア国際化[編集] プログラマ[編集] まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、

    gettext - Wikipedia
  • http://hal.cs.berkeley.edu/cil/

    gemini7
    gemini7 2010/03/04
  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • 安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

    UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。 シグナルハンドラの制約 UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されます。ユーザが[Ctrl]-[C]キーを押してプログラムを中断しようとしたり(SIGINT)、整数オーバーフローが発生したり(SIGFPE)すると、それらのイベントに対応するシグナルがカーネルからプロセスに対して通知されるのです。プログラマは、これらのシグナルを受信した時に特定の動作を行わせる「シグナルハンドラ」を書くことが

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
  • 美しいループ記法求む! - やねうらおブログ(移転しました)

    いま私は速度的に特化したプログラムを書かなくてはいけない。1%でも速いほうが望ましい。必然的に言語はC/C++となる。しかし、いまさらC/C++なんか使いたくない。もう少し洗練された記法が使える言語が好ましい。 なければ作ればいいやと思い、丸一日かけてC++のparserをC#で書いた。 C++風言語の字句解析と構文解析は出来るようになった。(C++ templateは除く。) あとは、いかようにも文法を拡張できる。この言語を仮にいまYaneCと名付ける。YaneCはコンパイルするとC++のコードを生成する。 それでいま悩んでいるのがループ記法だ。C#のようなforeachが欲しい。最初、次のように書けるようにした。 foreach var x in vect sum += x;ふむ、C#っぽくていい感じだ。C/C++のdefineマクロでforeachみたいなのを作ると次のようなものにな

    美しいループ記法求む! - やねうらおブログ(移転しました)
    gemini7
    gemini7 2009/12/02