タグ

Cと開発に関するiwwのブックマーク (35)

  • VSCodeでDoxygenのプレビューをしたい! - Qiita

    概要 この記事ではDoxygenPreviewerの説明と、下記のような作成で得た知識のまとめの導入をします。 doxygenのソースコードのコンパイルとそれに関すること Visual Studio Codeの拡張機能の作成方法とそれに関すること DoxygenPreviewer なにそれ 筆者が作成した、現在編集しているCソースコードのdoxygenをすぐに見れる、Visual Studio Codeの拡張機能です。C言語用です。C++もある程度はOKです。 https://github.com/hakua-doublemoon/DoxygenPreviewer に公開しています。 近いうちに(何事もなければ)マーケットにも出します。 Marketplaceで公開されました。使ってみてください。 なぜ作った というのが今の開発現場のコードレビューでよくあるからです。 解決策としてはDox

    VSCodeでDoxygenのプレビューをしたい! - Qiita
  • 【C】srand(time(NULL))をしても同じ乱数が生成される

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

    【C】srand(time(NULL))をしても同じ乱数が生成される
  • Cente HTTPd/c – 組込み開発技術ブランド「Cente」

    製品概要 IPv4/IPv6上で動作する組込み型Webサーバ/Webクライアント機能モジュール WebサーバとWebクライアントの両方を搭載 HTTP1.0/1.1に準拠(対応メソッド:GET/HEAD/POST) ITRON TCP/IP仕様API上で動作 ROM型Webページのデータ送信 一般FILE型Webページファイルのデータ送信(要Cente FileSystem) プロキシ通信対応(HTTPc のみ、認証、SSLも対応) CGI(Common Gateway Interface)機能 SSI(Server Side Include)機能 JavaアプレットやJavaスクリプトのロードが可能 Basic認証機能・Digest認証機能 キープアライブ機能 Cookie機能 Chunkエンコーディング機能 マルチパートメッセージデコード機能 Cente Compact SSLcとの組

  • 1分で実行できる?インストール不要、C言語向けGoogleTestサンプル for Linux - Qiita

    先にタイトルに誇大な表現があることを謝っておきます。。。 http://qiita.com/igayu/items/eaa63d017e0590504999 でC開発者向けのGoogleTestの良いところを述べたつもりですが、じゃあ次は実際に動かしてみようよ、って時の手ごろなサンプルを用意してみました。GoogleTest自体がサンプルコードも提供しているみたいですが、慣れてないとビルド方法とか、英語だから読む気しない、って人もいます。それくらい常識、勉強しなさい、と切り捨てると仕事は回りません。せっかくGoogleTest、便利そうだね、って思ってくれた人にはもう少し背中を押してあげます。 ここで紹介するサンプルは以下の前提で書いています。 ・C言語開発者向けということでC++の文法には極力触れない ・Linux gccベース(私はWindows7にvmwareでCentOS6.7を仮

    1分で実行できる?インストール不要、C言語向けGoogleTestサンプル for Linux - Qiita
  • 組込みCテストフレームワークUnityを導入してテストコード生産性をUp - フォトシンス エンジニアブログ

    回路設計・ファーム開発担当のす〜(@ksksue)です。 弊社のBLEモジュールnRF52(Cortex-M4F)のファームウェア開発環境にテストフレームワークUnity導入したところ カンタンな導入でテストコード生産性が飛躍的に上がりました。今回はそのUnityの紹介&解説です。 IoT開発においてハードウェアとソフトウェアを組合せたテストは品質を担保するために大事な工程ですが、 テスト項目が多くなってくると非常に煩雑になりがちです。Unity導入によってその煩雑さが少なくなりました。 オレオレテストコードをいじりまわす日々 Unity導入前、最初はカンタンなオレオレテスト環境で進めていたのですが、テスト項目数が増えるに従ってその環境自体を場当たり的に改善していくといった作業が発生しました。 正直なことを言うと、改善したいという欲求にあがらえず、必要以上の作業をしていた部分があったと思い

    組込みCテストフレームワークUnityを導入してテストコード生産性をUp - フォトシンス エンジニアブログ
  • ゲームじゃないほうの Unity で C 言語でテスト - Qiita

    Unity とは? 「Unity ってゲームのやつかな? でも C言語?」とお思いでしょうが、ここでの Unity はC 言語のためのテストフレームワークのほうです。テストケースを書いて、赤色を緑色にしていくやつですね。 小さくて手軽で書きやすいので、簡単にテストを書いて実行することができます。アサーションも必要なものがそろっています ( のちほどご説明 )。 以下では Unity の導入とテストケースの作成、ビルドと実行についてメモします。 導入 Unity を入手します: https://github.com/ThrowTheSwitch/Unity プロジェクトの lib 等、好きな場所に置きます テストケースを書きます テストランナーを書きます モジュールを空実装します ビルドの設定をします テストを実行して真っ赤にします (なりませんが……) モジュールを修正します 緑にします

    ゲームじゃないほうの Unity で C 言語でテスト - Qiita
  • 組込み機器向けのコーディングに「MISRA C」が効果的な理由

    車載製品のソフトウェアの安全性と信頼性を支援するために作られた団体「MISRA(Motor Industry Software Reliability Association)」。同団体は、C言語のためのソフトウェア設計標準規格「MISRA C」を開発したことでも知られている。なぜ組込み機器の開発にMISRA Cを活用するのがよいのか。C言語とはどう違うのか。MISRA C 研究会に所属するビースラッシュの宇野結氏が解説した。 MISRAは、車載製品のソフトウェアの安全性と信頼性を支援するために作られた団体だ。1998年に、C言語のためのソフトウェア設計標準規格「MISRA C」を開発したことでも知られている。MISRA Cはその後も改訂が重ねられ、現時点でMISRA C:2012が最新版となる。 宇野氏が所属するMISRA-C研究会は、「MISRA Cを正しく理解し、実用的な形でまとめ、

    iww
    iww 2019/07/16
    『MISRA Cに従って記述することによって、安全性が高くなるのです』 そういえば、どの程度効果があるのかを定量的に示したものを見たことが無いな
  • Cppcheckの使い方の詳細と設定 | 技術者魂

    ディレクトリ内の全てのファイルを検査 通常、プログラムはプロジェクトディレクトリ内にある多くのソースファイルから成り立っています。 そのディレクトリ内にある全てのソースファイルをチェックする方法から。 サンプルのコードですと面白くないので、C/C++で書かれたオープンソースをダウンロードしてCppcheckを実行してみました。 サンプルとして選んだソースは、MariaDBのコネクターです。私は、データベースを扱うことが多く、たまたまMariaDBのソースが手元にあったからです。(mariadb-connector-c-2.3.2-src.tar.gz) Checking mariadb-connector-c-2.3.2-src/examples/mysql_affected_rows.c… 1/109 files checked 0% done Checking mariadb-conn

    iww
    iww 2018/11/28
    ちゃんと設定すればちゃんと使えるっぽい
  • cqual freecode日本語情報ページ - OSDN

    cqual は C プログラムのバグを見つけるの入力に基づいた分析ツールです。それは余分なユーザー定義の型修飾子を持つ C の型システムを拡張します。プログラマに適切な修飾子を持つ彼らのプログラム注釈し、cqual エラーをチェックします。不適切な注釈は潜在的なバグを示します。cqual はプログラム解析モードでは、emacs ベースの GUI を使用して分析結果を示します。他のアプリケーション間で潜在的なフォーマット文字列の脆弱性を検出およびユーザー スペース カーネル ポインター エラー検出 cqual を使用できます。

    cqual freecode日本語情報ページ - OSDN
    iww
    iww 2018/10/29
    2003年くらいでストップしてる?
  • 静的コード解析 - Wikipedia

    静的コード解析 (せいてきコードかいせき、static code analysis) または静的プログラム解析 (static program analysis) とは、コンピュータのソフトウェアの解析手法の一種であり、実行ファイルを実行することなく解析を行うこと。逆にソフトウェアを実行して行う解析を動的プログラム解析と呼ぶ[1]。静的コード解析はソースコードに対して行われることが多いが、少数ながらオブジェクトコードに対して行う場合もある。また、この用語は以下に列挙するツールを使用した解析を意味することが多い。人間が行う作業はインスペクション、コードレビューなどと呼ぶ。日語では静的コード分析とも訳される[2]。 概要[編集] ツールが行う静的コード解析の洗練度は、個々の文や宣言だけを検証するものから、プログラム全体を解析するものまで様々である。解析結果の利用も様々で、Lintのように単に

  • gprofを使いこなす - minus9d's diary

    C/C++のコードの速度を改善するときに有効な方法は、処理時間を多く消費する関数を見極めて、その関数を改善することである。どの関数が(1)どれだけ処理時間を消費するか、(2)何度呼ばれているか、(3)どの関数を呼んでいる/どの関数に呼ばれているか、などを測定する行為をプロファイリングといい、その手助けをするツールをプロファイラと呼ぶ。今回はC/C++のプロファイラとして有名なgprofの使い方を紹介する。 プログラムの例 GNUプロファイラーによるコード処理速度の向上 のコードを参考にして作成した以下のコードをgprofでプロファイリングしてみよう。main()はa()とb()を100000回呼ぶ。b()はa()の約4倍時間を消費する。またmain()自身も、a()とb()を呼び出してその結果を待つ以外に、a()の約1/3の時間を消費する。 // main.cpp #include <cs

    gprofを使いこなす - minus9d's diary
  • C++11による高精度なカウンター

    パフォーマンスを計測するには、高精度なカウンターが必要である。このカウンターは、決まった周期で値が刻まれることにより、正確な経過時間の計測ができる。 最近、GNU/Linuxに移行したので、またどうもこの環境に慣れていない。ともかくGNU/Linuxで高精度なカウンターを使う方法を調べることにした。つまり、Win32 APIでいうところの、QueryPerformanceCounterのようなものがほしい。 まず見つかったのはPOSIXのclock_gettimeだ。これを使えば、ナノ秒単位での分解能が得られる。ただし、timespec構造体が非常にややこしい作りになっている。秒とナノ秒に分かれているのだ。これは面倒だ。こんなインターフェースでは間違えたコードを書いてしまいそうだ。 また、未だにGNU/Linux環境におけるライブラリのリンク方法がよくわからないのだが、どうもclock_g

    iww
    iww 2018/01/19
    『理由が謎だ。わけがわからない。GNU/Linux環境にはまともなドキュメントが不足している。』 こんだけ頭のいい人にもドキュメントは必要なんだな
  • Visual Studio 2017でLinux C++開発(CentOS7仮想環境) - Qiita

    Visual Studio 2017でLinux C++のクロスプラットフォーム開発ができるようになったということで試してみます。 基的にはこちらの内容と一緒です。 http://qiita.com/tadnakam/items/4660d8fa5b1b72f9eb70 Windows 7 Professional SP1 64bit Visual Studio 2017 Community VirtualBox v5.1.8 Vagrant v1.8.6 ゲストOS CentOS7.2 (bento/centos-7.2) ※VagrantでゲストOS(CentOS)はセットアップ済みとします。 Visual StudioでLinux C++開発できるようにする Visual Studio 2017のインストーラーからC++によるLinux開発をインストールします。 ゲストOS(Cen

    Visual Studio 2017でLinux C++開発(CentOS7仮想環境) - Qiita
  • linuxカーネルで学ぶC言語のマクロ - Qiita

    はじめに 記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。

    linuxカーネルで学ぶC言語のマクロ - Qiita
  • Valgrindの結果の見方、日本語訳、など役に立つことまとめ - 結果だけでなく過程も見てください

    勉強がてらメモ。 適宜更新していこう。うん。 Valgrindって? デバッグやプロファイラなどの複数のツールから構成されるツール群の総称。 メモリリークチェックツールとして有名だと思いますが、 それはValgrindツール群の中のMemcheckというツールによる機能だったのですね。 どんなツールがあるのか?マニュアルを見ると・・・ Memcheck 言わずと入れたメモリエラー検出ツール。特にC/C++に向いている。リークチェックやバッファーオーバーランなどね。 Cachegrind プログラムのキャッシュグラフ、または分岐予測をしてシミュレートする。プログラムを速くするために使うツール。 Callgrind 関数呼び出しをトレースしたりできる。Cachegrindをかぶる部分もあるが、Cachegrindとは別の情報も収集できる。 Helgrind マルチスレッドのプログラム向け。スレ

    Valgrindの結果の見方、日本語訳、など役に立つことまとめ - 結果だけでなく過程も見てください
  • メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ

    以前の記事にもLinuxでのメモリーリークの検出に関する事を書いたのですが、もう少し一般的なやり方を紹介しましょう(というより、自分で毎回忘れるので備忘録として・・・)。 【mtraceを使う方法】 まず、mtraceを使う方法です。リークのテストを開始したい場所でmtrace()をコールし、終了したい場所でmuntrace()をコールするようにします。 #include        <stdio.h> #include        <stdlib.h> char *test() { char    *test=malloc(10); return(test); } int main() { char    *ptr; mtrace(); ptr=test(); //*(ptr+10)='\0'; //free(ptr); muntrace(); return(0); } -gつきでコ

    メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
  • Worse Is Better

    Lisp: Good News, Bad News, How to Win BigLisp: 良い知らせ、悪い知らせ、大成功への提言 Richard P. GabrielRichard P. Gabriel Lucid, IncLucid, Inc (Original article: Lisp: Good News, Bad News, How to Win Big. Japanese translation by Hisashi Morita.) This article was originally published in 1991.この記事は当初1991年に公表された。 Abstract要約 Lisp has done quite well over the last ten years: becoming nearly standardized, forming the bas

    iww
    iww 2015/02/20
    PC loser-ing問題 について。 selectでブロックしてるときとかに全然関係ない割込みの余波で起こされてEINTRになるアレ。EINTRだったらエラー無視してリトライとかよくやるやつ。
  • GCC some extensions

    gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー

    iww
    iww 2014/10/24
    知らなかったことのオンパレードだ・・・ 1995年の記事なのに
  • Debian -- sid の libdaemon0 パッケージに関する詳細

    Debian の資源: バグ報告 Developer Information Debian での変更履歴 著作権ファイル Debian パッチ追跡システム libdaemon ソースパッケージをダウンロード: [libdaemon_0.14-7.1.dsc] [libdaemon_0.14.orig.tar.gz] [libdaemon_0.14-7.1.debian.tar.xz] メンテナ: Utopia Maintenance Team (QA ページ, メールアーカイブ) Michael Biebl (QA ページ) 外部の資源: ホームページ [0pointer.de] 類似のパッケージ: libdaemon-doc libdaemon-dev libio-captureoutput-perl libproc-reliable-perl python3-daemon python

    iww
    iww 2014/02/24
    ifplugdが使ってた。 ちょっとだけ便利そう
  • レガシーコードをC言語のTDD用フレームワーク『Fake Function Framework (fff)』ですっぽんぽんにする

    レガシーコードをC言語のTDD用フレームワーク『Fake Function Framework (fff)』ですっぽんぽんにする 以前、こんな記事を書きました。 恐るべきレガシーコードの救世主になるか?!ドロドロ依存なモジュールたちを『CMock』ですっ裸にする | Futurismo CMockは素晴らしいツールで、正直これがないとこの3ヶ月で心がへし折られていたと思う。しかし今日は、CMockに対向できるような素晴らしいツールを発見したので紹介。その名も、 FFF ファイナルファンタジーではないが、魔法のようなツールだ。 FFFってなに# Fake Function Framework。ダミー関数を自動生成してくれる、『C言語』のためのツール。フェイク関数のフレームワークといいつつも、実際はスタブ関数やスパイ関数などなど、いろいろ生成するツールだ。 meekrosoft/fff git

    レガシーコードをC言語のTDD用フレームワーク『Fake Function Framework (fff)』ですっぽんぽんにする