タグ

cに関するadvblogのブックマーク (93)

  • MPLABインストール手順

    MPLABインストール手順 (更新終了) 2013/11/27 公式からの発表で、MPLAB IDE 8はバージョン8.92を以ってアップデートが終了しました。公式案内はこちら。 以降はMPLABXへ以降されます。 また、ホームページ上ではこちらも更新を最後と致します。今後の情報はブログのPICカテゴリーをご覧ください。 ファイルのダウンロード XCシリーズコンパイラ(HITECH PICC Lite)をWindowsで快適につかうには、マイクロチップテクノロジー社謹製のMPLAB IDE Ver8をインストールします。 マイクロチップテクノロジーでは、開発にMPLABXを使うことを推奨しています。これはWindowsLinuxMacOSなど、プラットフォームを選ばず、強力なコードサポートを持っています。今の所MPLABはバージョン更新を続けていますが、今後はMPLABXに移行する可能

  • 30年たっても基本はC言語

    筆者は日経ソフトウエアでプログラミングに関する記事の編集/執筆をしている。言語やプラットフォームを限定しない総合誌なので,面白そうな話題なら何でも取り上げたいと考えている。もっとも,なるべくやさしく書くことを旨としているので,安定したニーズがあるのはやはりプログラミング言語の入門記事である。中でもC,Javaの二つが両巨頭だ。 初心者が学ぶべき言語はどれかという問題には様々な意見があるだろうが,これら二つの言語を学びたいと考える人が多いことは実感できる。連載記事はコンスタントに人気があるし,特集のテーマとしてもそれぞれ単体で取り上げられるだけのニーズがある。 IT Proの読者に向けてもあまり宣伝臭くならないと思うので安心して書くが,この二つの言語の連載記事は,直近の号(2005年7月号)で新連載を開始した。筆者はCのほうの編集を担当している。連載開始に当たってはいろいろと頭の中でどのよう

    30年たっても基本はC言語
  • MISRA-Cの規格って無料では手に入らないようだ

    Technicalコードの品質というあたりを色々考えたり調べ物したりしている時に、ふとMISRA-Cのコーディング規約ってどんなのだろうと気になって調べてみたんだけど、どうも無料では手に入らないっぽい。 コーディング規約なので、そんなに突拍子も無い内容ではないと思うんだけど...。 日語での情報 規格書 日語訳された規格書は、自動車技術会というところでテクニカルペーパー"TPTP-01002 (J) 自動車用C... コードの品質というあたりを色々考えたり調べ物したりしている時に、ふとMISRA-Cのコーディング規約ってどんなのだろうと気になって調べてみたんだけど、どうも無料では手に入らないっぽい。 コーディング規約なので、そんなに突拍子も無い内容ではないと思うんだけど...。 日語での情報 規格書 日語訳された規格書は、自動車技術会というところでテクニカルペーパー"TPTP-01

    MISRA-Cの規格って無料では手に入らないようだ
  • 新しいOSSプロジェクトの約半数がCを採用 | スラド オープンソース

    ストーリー by hayakawa 2009年01月23日 12時05分 「C」のなかに「C++」とか「C#」とか「Objective C」とかは含まれてますか? 部門より The Registerの記事によると、ソースコードライセンス管理製品を開発する米Black Duck Softwareの調査により、新しいOSSプロジェクトの約半数は開発言語にCを採用していることがわかった。 同社によると、2008年に開始された17000のプロジェクトのうち47%がCを採用しており、2位 Java 28%、3位 JavaScript 20%、4位 Perl 18%と続くそうだ。4位までの合計で100%を超えてしまうが、これは多くのプロジェクトが複数の言語を併用しているため。ちなみにPHPは11%でRubyは6%とのこと。ライトウェイト言語がもっと使われているかと思ったが意外な結果である。

  • セマフォを使った排他制御

    排他制御とは、あるメモリやある操作を、同時に複数のプログラムからアクセスあるいは実行させないようにするための処理です。 プロセス間で排他制御をするには、グローバル変数は使えません。グローバル変数はプロセスごとにもつものだからです。 共有メモリの1バイトをフラグとして使ったりすると、フラグを立てた瞬間に2つ以上のプロセスが同時に 走ってしまう危険性があります。ファイルを作成し、ファイルが存在するか否かをフラグに使っても同じような 問題があります。 セマフォとは以上のような問題点を解決するための仕組みです。セマフォはOSが用意するグローバルなフラグのようなもので、 そのフラグを待っているプロセスが複数あったとしても、セマフォから実行の許可が得られるプロセスを1つ に制限させることができます。 サンプルプログラムを考えます。このプログラムは親が500バイト共有メモリを作成します。 そして、for

  • Linux C Library (libc) について

    佐野武俊 / Taketoshi Sano, (kgh12351@nifty.ne.jp) $Date: 1999/05/20 11:27:05 $, ($Revision: 1.11 $) Linux C Library (libc) の概要について、その役割と歴史などを簡単に まとめたものです。内容および文書の構成についての御意見をお待ちして おります。 1. 「ライブラリ」とは 2. 共有ライブラリ 3. Linux C Library : コードの起源 3.1 Linux C Library : libc5 (ELF) 3.2 Linux C Library : libc6 (glibc2) 4. Linux C Library : 今後の発展 5. おわりに 5.1 お願い 5.2 謝辞 5.3 この文書の配布について 1. 「ライブラリ」とは まずは JF にある GCC-HO

  • 今時の C 言語な質問

    History 2005年11月 Microsoft Visual Studio .NET デビュー。 この頃から R.Tanaka.Ichiro と名のりネットでアクティブに活動を始める。 2006年02月 C# を学び始める。 理想的な言語に感動。尊敬する方々の影響も大きい。 2006年09月 わんくま同盟加盟 ある事件がきっかけで、中さんから声をかけていただき加盟。 2006年11月 MSC2006 にて R・田中一郎として始めて人前に姿を晒す。 2007年04月 Microsoft MVP for Visual Developer - Visual C# を受賞。 2007年06月 わんくま同盟勉強会にてスピーカーデビュー。 2008年04月 Microsoft MVP for Development Tools - Visual C# を受賞。 2008年05月 70-526,7

    advblog
    advblog 2008/12/28
  • 今さら C 言語

    History 2005年11月 Microsoft Visual Studio .NET デビュー。 この頃から R.Tanaka.Ichiro と名のりネットでアクティブに活動を始める。 2006年02月 C# を学び始める。 理想的な言語に感動。尊敬する方々の影響も大きい。 2006年09月 わんくま同盟加盟 ある事件がきっかけで、中さんから声をかけていただき加盟。 2006年11月 MSC2006 にて R・田中一郎として始めて人前に姿を晒す。 2007年04月 Microsoft MVP for Visual Developer - Visual C# を受賞。 2007年06月 わんくま同盟勉強会にてスピーカーデビュー。 2008年04月 Microsoft MVP for Development Tools - Visual C# を受賞。 2008年05月 70-526,7

    advblog
    advblog 2008/12/28
  • デバイスドライバ開発入門

    これは、私が仕事でたまたまやることになった、最初で(多分最後の?)Linux によるデバイス・ドライバ開発の経験から、学んだことを抜粋しています。これを読んだからといってすぐさまドライバが書けるようになるとは思わないでください。ただ、この手の文書はあまり見たことがなかったので、少しはインパクトあるかなあ、ぐらいの軽い気持ちで書きました。 実際のコードや関数仕様書などはお見せできませんが、雰囲気くらいは分かると思います。 カーネルのソースを読む際の参考になれば幸いです。 前提 SCSIについて 開発の必要条件 入門 デバイスドライバに関する一般的な考慮事項 UNIXでのアプリケーション開発に関する一般的な考慮事項 UNIXでのデバイスドライバ開発に関する一般的な考慮事項 ドライバとカーネルのインターフェース プロセス・スケジューリング関連サービス タイマー機能 メモリ操作関連 リソース関連

  • Cだけプログラマの憂鬱 - 神様なんて信じない僕らのために

    それ、C関係ないのでは - プログラミング言語を作る日記 それC関係ないよね、というのはきむら(K)さんや、id:minekoaさんにも言われたことですが、 実行時のチェックがない。よって、配列のオーバーラン、不正なキャスト、開放されたメモリを参照する、といった理由でのバグが発生し、原因追及が非常に困難。 GCがない。 それ、C関係ないのでは - プログラミング言語を作る日記 うーん、ここは少し観点が違うかなと思います。 C++でも、配列はオーバーランするし、Cスタイルキャストで苦しむし、 解放されたメモリを参照するなんてことは日常茶飯事に起こるわけで、 これらを解決する手段として、C++では、 可変長配列としてstd::vectorを利用する 固定長配列としてboost::arrayを利用する キャストはstatic_castだけを使う(reinterpret_castはCの構造体を読み

    Cだけプログラマの憂鬱 - 神様なんて信じない僕らのために
  • いきなりCの方がよっぽど難しい : 404 Blog Not Found

    2008年12月17日12:30 カテゴリLightweight Languages いきなりCの方がよっぽど難しい さすがにJavaPHPはなかったけど、高級言語を先に学ぶというのは今にはじまったことじゃない。 304 Not Modified: プログラミング初心者はギークから学べるのか そんな私が学んできてずっと思っていたことは、私はC言語から学び、JavaPHPと進んできたが、今の人はいきなりJavaPHPから学ぶのである。構造化プログラミング言語からオブジェクト指向言語へと順を追うのではなく、いきなりオブジェクト指向言語を学ぶのだ。はっきりいって理解できるのか非常に疑問にう。404 Blog Not Found:初心者向け言語もいろいろComputer Scienceをきちんと教えている学校の多くは、最初の一年の前半に scheme を教えて、後半に C と assembl

    いきなりCの方がよっぽど難しい : 404 Blog Not Found
    advblog
    advblog 2008/12/17
  • hogetrace - 関数コールトレーサ - memologue

    でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとしてptrace(2)ベースのLinux用関数トレーサを自作しました。こういうツール上でまずソフトウェアを実行してみて、どのファイルのどの関数がどういう順で呼ばれるか把握おけば、いきなりソースコードの山と格闘を始めるより楽かなーと思いまして。せっかく作ったので公開します。 http://binary.nahi.to/hogetrace/ straceはシステムコールだけ、ltraceは共有ライブラリ(DSO)の関数呼び出しだけ*1をトレースしますが、このツールは、実行バイナリ中の自作関数の呼び出しもトレースします。例えば再帰で1から10まで足し算するソースコードを用意して % cat recursion.c #include <stdio.h> int sum(int n) { return n ==

    hogetrace - 関数コールトレーサ - memologue
  • スタックオーバーフローのハンドリング (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 を積極的に使

  • デバイスドライバのプログラムを読み解く:組込みZine(クミコミジン)

    プログラムを読んでみよう⑤ ―― 音検出 sound.c 10行目から12行目には、音の検出にかかわるハードウェア資源を#defineを使って別名定義しています。こうしておくことで、接続ポートが変わったり、音を検出するときの信号レベルが逆になったりしても、ここだけ修正してビルドし直せばよくなります。 26行目からは音を待つ関数WaitSound()があります。基は28行目のwhile文です。これで、対応ポート(PORT_SOUND)がINACTIVE(未検出)の間、ループして待ちます。ただし、引数chktimeにCHECK_TIMEが指定されたときは(29行目)、30行目でReadTimer()を呼んでタイマ値をチェックし、TIME_LIMIT時間を経過していたら音待ちを中断してERRORで帰ります。TIME_LIMITは別途timeruser.hで定義しています。 50行目からは、無音

  • ガベージコレクション

    Ruby には使われなくなったメモリを自動的に検出し解放してくれる ガベージコレクションの機能がある。 この節ではこのガベージコレクションの詳細を追ってゆく。 オブジェクトの管理 Ruby の GC は Ruby のオブジェクトのみが対象だ。かつ、Ruby が 生成し管理しているメモリにないといけない。逆に言うとユーザが勝手に 割りあてたメモリまでは面倒をみてくれないということだ。たとえば 以下の関数はメモリリークを起こす。 void koreha_dame() { malloc(1024); /* メモリをもらっては捨てる */ } 一方で以下の関数はメモリリークを起こさない。 void daijoubu() { rb_ary_new(); /* Ruby の配列を作っては捨てる */ } Ruby のオブジェクトはようするに struct RVALUE だったから、オブ ジェクトの管理

  • それ、C関係ないのでは - K.Maebashi's はてなブログ

    ずいぶん前の記事に反応しますが。 Cはワンマン向け - 神様なんて信じない僕らのために ■[misc]Cはワンマン向けだと考えるようになった。 いや、あくまで自分の中ではです。 今、Cで作られたものを参考にしてC++に移す作業をしていたりするんだけれども、 至る所に出現する、 void* コールバック 謎フラグ hoge->foo->bar->ptr Cが、他の言語(JavaとかC#とか?)に比べてとにかくもう圧倒的にダメなところは、 実行時のチェックがない。よって、配列のオーバーラン、不正なキャスト、開放されたメモリを参照する、といった理由でのバグが発生し、原因追及が非常に困難。 GCがない。 の2点でしょう(特に前者)。C++ではこの2点(特に前者)については、書き方次第でマシになるとはいえ、完全に解決されてはいません。 で、Isoparametricさんの言うところの問題点ですが、

    それ、C関係ないのでは - K.Maebashi's はてなブログ
    advblog
    advblog 2008/12/14
  • C++ 0xの参考資料 - プログラマーの学習記録

    まだ、正式発行はされていないC++ 0xだけど、すでにドラフトは出ていて、内容的にはほぼ固まっている様子。 C++ 0xの参考資料としては、以下を参考にしています。 ・http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html 大元のレポートですね。これが読めればいいのですが、あいにく英語は苦手です。 ・http://ja.wikipedia.org/wiki/C%2B%2B0x Wikipediaは便利ですね。C++ 0xについては、Wikipediaを参考にしようと思います。日語がいいよね。 ・http://d.hatena.ne.jp/faith_and_brave/ C++プログラマー、アキラ氏のblogです。ブログ読んでるんですが、正直理解できません。理解できるようにがんばります。

    C++ 0xの参考資料 - プログラマーの学習記録
  • 参照とポインタの違い - 2008-12-11 - mad日記

    科学者とあたまを書いたひとだけれども、この名前どっかで聞いた事があるなと思ったら, 昨日劇団青年座の人の講演で聞いたのだった。 「フユヒコ」という劇団青年座の公演が明日NHKで放送されるらしいです。冬彦ってのは寺田寅彦のペンネームらしい。 http://cgi4.nhk.or.jp/hensei/program/p.cgi?area=001&date=2008-12-12&ch=31&eid=9950 おもしろそうだから観てみようかな。 ところで小柴先生が同じような事を言っていたのを思い出した。このインタビューは面白い。 一流の理論家は、「自分の理論では、ここまでは使えるけれど、これから先は分からない」という適用限界をいつも意識している。ところが二流の理論家というのは、自分が名前を覚えた、あるいは、使った理論で何でもやれると思ってしまう。二流の理論家に困らされるのは、新しい実験計画が出てき

    参照とポインタの違い - 2008-12-11 - mad日記
  • C#からC++に配列を送る方法 - ymlabのブログ

    昨日より、やっとWindows+ Cygwin-XServer and Cygwin 環境で、 Xaw+X11環境で作成された指導教官の先生が作った楽譜ソフトを動かすことができた。 しかし、自分の作ったプログラムと連携させるには、あまりにも面倒なので、 同じプログラムの中で実行できるように考えてみる。 今のプログラムはC#言語で動かしているので、X11なんて、動くわけがない。 ところがほしい情報は、数値データなので、GUIは、必要ではない。 そうなると、ただのC言語だ。 C言語をC#言語に移植することにする。 ところが、移植をしていく途中で、元データに、自己参照構造体があることを発見する。 C#言語には、ポインタの概念が隠蔽されているので、 これを、まともに実装するのは、檄大変であることに気づく。 そこで、いったん元のC言語のデータを、Visual StdioのC++言語/CLI で、 ク

    C#からC++に配列を送る方法 - ymlabのブログ
    advblog
    advblog 2008/12/13
  • C/C++ 免許制 その 2

    C/C++ 免許制はどうですか? の続き 774RR さんの書き込みより C/C++ ってカバーする分野が広い(広すぎる)ため、ある分野の専門知識は他の分野では不要なものが多いです。 俺のメイン仕事のちっこいワンチップマイコン組み込み系と πを42億桁計算する超多倍長演算と Web アプリケーションの安全性を確保するためのセキュリティ確保のためのシステムと かさなる専門知識はあまりありません。 設計と実装はある程度分けて考えられると思います。「πを42億桁計算する超多倍長演算」はどちらかというと実装面の影響が強く、「Web アプリケーションの安全性を確保するためのセキュリティ確保」は設計面での影響が強いですよね?security 上の問題が発生することはどの言語でも多いですが、C/C++ の大きな問題として他の言語に比べ実装 (coding) で問題が生じやすいというのがあると思います。

    advblog
    advblog 2008/12/13