タグ

Cとプログラミングに関するiwwのブックマーク (142)

  • getopt関数の利用 - コマンドラインオプションの処理 - 碧色工房

    コマンドラインオプションの処理を行おうと思うと、 main関数の引数を利用すれば良く、 あとは自分で決めたルールに従いパースすればよい。 ただ、各プログラムごとに必要となる引数やその意味などは異なって当たり前だが、 引数の与え方、引数のフォーマット、という観点では、 ある程度標準的な方法をとった方がプログラマ・ユーザ双方にとってメリットがある。 例えばlsというコマンドで、"."から始まる隠しファイルも含めて表示させるオプションは-a、 パーミッション情報など詳細情報を表示させるオプションは -l である。 両方のオプションを同時に指定する場合は、 ls -a -l や ls -l -a と、どちらを先に指定してもよいし、 ls -la といった形でまとめて指定しても同じ意味になる。 また、コンパイルで利用するgccでは、gcc -o hoge hoge.cといった形で、 -oオプションの

    getopt関数の利用 - コマンドラインオプションの処理 - 碧色工房
  • フォーマット指定子一覧

    フォーマット指定子一覧 フォーマット指定子とは、C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する、 表示形式を指定するための記述子である。 C言語専用と思っていると、MFC(C++)のCStringクラスやjavaFormatterクラス(jdk1.5以降)にも使用されていたりして、 やはりしっかり覚えておかなくては、と思わせられることもある(詳細は異なるが)。 度忘れした際にはここを見ればよいように、よく使うフォーマット指定子をここにまとめておく。 なお、ANSI規格での全貌を知りたいときは、fprintfのリファレンス等を参照のこと。 出力フォーマット指定子 printf(),fprintf(),sprintf()などで使用する指定子である。

  • http://www.c-tipsref.com/reference/stdlib/strtoul.html

  • strtoul

    文字列をunsigned long値に変換(エラー検出、基数指定あり) 【書式】 #include <stdlib.h> unsigned long strtoul(const char *s, char **endptr, int base); 【説明】 文字列 s を、baseで指定された基数でunsigned long型に変換し返却します。このとき、文字列中に変換不可能 な文字があった場合には、その文字列のポインタをendptrに格納します。 atol関数は、単に文字列を10進のlong型変数に変換するのみで、文字列中に変換不可能な文字があった ときには対応できませんが、strtoulを使うと、変換可能な部分についてはきちんと変換し、変換不可能な 部分についても情報を得ることができます。更に、baseを指定することにより、好きな基数で変換す ることができます。 結果がunsigned

  • ISO/IEC JTC1/SC22/WG14 - C

    2024-06-14: projects | documents | contributing | meetings | contacts ISO/IEC JTC1/SC22/WG14 is the international standardization working group for the programming language C. The current C programming language standard (C17) ISO/IEC 9899 was adopted by ISO and IEC in 2018. To obtain the international standard, please contact your national member body. Work on projects and their milestones include

  • #と##演算子

    文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(

    iww
    iww 2021/03/08
    ## なんて知らなかった。 バグの素になりそうだからできるだけ避けて生きよう
  • ソフトウェア1 (2020)

    ソフトウェア1 (2020)¶ サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。 電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の2年生は最初のオリエンテーションで全員slackに招待されるはずですが、もし招待されていなければ松井まで連絡してください。 3年生は既に全員招待済みのはずです。電気系以外の履修者、および4年生は招待されていないので、松井まで個別に連絡してください。 サイトは2020年度版です。2021年度版はこちら。 ニュース¶ [2020.11.16] Q&Aにweek7を追加しました。 [2020.11.12] week7、およびバージョン管理を追加しました。 [2020.11.09]

  • zlib 1.3.1 Manual

  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • おそらく先がない5つのプログラミング言語? - YAMDAS現更新履歴

    おそらく先がない5つのプログラミング言語、といういろいろと怒りをかいそうな記事だが、どうせワタシが愛する C 言語なんかがまたやり玉に挙がってるんだろうと見たら、一番最初に Ruby が挙がっている…… この記事は TIOBE や RedMonk のプログラミング言語ランキングに Dice 独自の求人票情報を加味してるようだが、Ruby は落ち目という認識らしい。うーむ。 それ以外には Haskell、Objective-C、R、そして Perl が挙げられていて、この手の記事の定番といえる PerlSwift 誕生後やはり定番である Objective-C はそうですかという感じだが、ビッグデータの時代に人気を高めた R 言語ですら、Python に追いやられつつあるというのはそうなんでしょうね。 それにしても Ruby が先がないという意見には異論が出るだろう。ネタ元は Slashd

    おそらく先がない5つのプログラミング言語? - YAMDAS現更新履歴
    iww
    iww 2019/08/06
    Cは他言語のベースになってるだけあってつぶしが効く言語だと思うし、初期に勉強できてラッキーだった
  • ファイルサイズの取得方法 - 苦しんで覚えるC言語

    C言語にはファイルサイズを知るための関数はありません。 ファイルサイズを知るには、ファイルを開いてからファイルポインタを移動して求めます。 fpos_t GetFileSize(const char* FileName[]) { fpos_t fsize = 0; FILE* fp = fopen(FileName, "rb"); /* ファイルサイズを調査 */ fseek(fp, 0, SEEK_END); fgetpos(fp, &fsize); fclose(fp); return fsize; } fpos_t はデータのサイズを意味する変数で、実態は符号なしの整数値です。int に変えてもさほど問題はありません。 また、上記の処理で、ファイルポインタ、つまり現在の読み取り位置が変化してしまうので、下記のようにして戻します。

    ファイルサイズの取得方法 - 苦しんで覚えるC言語
    iww
    iww 2019/07/04
    fseek()で求めるとか、こういうことをしているから苦しむのでは
  • [Cppcheck] cfg ファイル設定

    Cppcheck 1.63 がリリースされました。 といっても大分前ですが… 調べたり検証したり別のことやってたりしてたら時間がかかってしまいました。 トラブってました1.63 を早速インストールしたところ、下記のようなエラーが… (information) Failed to load std.cfg. Your Cppcheck installation is broken, please re-install. The Cppcheck binary was compiled without CFGDIR set. Either the std.cfg should be available in cfg or the CFGDIR should be onfigured. cygwin から実行すると動作して、コマンドプロンプトからだと上記エラーが… どうしたものかと調べていたら、

  • 古のテクニックを見せようと思ったら最近の技術の前にあっさり敗北した話

    オブジェクトについて抽象から具象まで取り混ぜて説明していた時、最も具象なレベルで見れば、オブジェクトはメモリ上に確保した領域にすぎないと説明しました。 そんな説明をしていた時、メソッドの実体ってどこにどうあるのですかと質問を受けました。人の心はどこにどうあるのですかという質問に比べると緩い質問ですが、良い質問だと思いました。こういう疑問を持つのは大事だと思うからです。自分もかつてプログラムとは結局のところどう実行されるのかが気になりました。プログラマなら誰もが通る道だと思います。 そんなわけでJavaのような箱入り娘から離れて、デレのないツンデレ娘ことC言語で古のテクニックを見せることにしました。 とりあえず次の簡単なコードから始めます。C言語は知らなくても構いません。関数fnがあって、引数に2を加算して返すことだけを読み取ってください。 #include &lt;stdio.h&gt;

  • nmコマンドでC/C++のシンボルテーブルを見る、C++の名前マングリング、"C"リンケージ、あるいはリンカに関するメモ - 百日半狂乱

    前回(g++)と前々回(gcc)のサンプルコードを使ったC++のマングリングや"C"リンケージに関するメモ. nmコマンドでサンプルコードのシンボルテーブルを覗いた後に、C++からCの関数を呼び出す場合のサンプルコードを示す. 特にリンケージ周りの説明は正確性を欠いているやもしれませんのでご容赦下さい.より詳細な説明は参考リンク等を参照して頂ければと思います. nmコマンド nm は、UNIXや類似のオペレーティングシステムに存在するコマンドであり、バイナリファイル(ライブラリ、実行ファイル、オブジェクトファイル)の中身を調べ、そこに格納されているシンボルテーブルなどの情報を表示する。デバッグに使われることが多く、識別子の名前の衝突問題やC++の名前修飾の問題を解決する際に補助として用いられる。 GNUプロジェクトでは、高機能の nm プログラムを GNU Binutils パッケージの一

    nmコマンドでC/C++のシンボルテーブルを見る、C++の名前マングリング、"C"リンケージ、あるいはリンカに関するメモ - 百日半狂乱
  • AdLint 日本語情報トップページ - OSDN

    AdLint(アドリント) は、オープンソースのソースコード静的解析ツールです。 AdLint は、ソースコード中の安全性や移植性に欠ける部分について警告メッセージを出力し、また、同時にさまざまな品質メトリクスを測定することができます。 AdLint は、(現時点では) ANSI C89 / ISO C90 / 一部 ISO C99 規格に準拠した C 言語 のソースコードを解析することができます。 AdLintRuby で実装されているため、WindowsMac OS X、GNU/Linux、FreeBSD など Ruby がサポートする全てのプラットフォームで利用することができます。 !なお、最新のバージョンは、下記URLからダウンロードしてください。 http://sourceforge.net/projects/adlint/

    AdLint 日本語情報トップページ - OSDN
    iww
    iww 2018/11/28
    C言語用静的解析ツール。 2014年にプロジェクト終了。
  • AdLint 3.2.14 利用者ガイド

    導入 AdLint とは AdLint は、オープンソースのソースコード静的解析ツールです。 AdLint は、ソースコード中の安全性や移植性に欠ける部分について警告メッセージを出 力し、また、同時にさまざまな品質メトリクスを測定することができます。 活用事例の一部は、付録のスクリーンショットでご確認いただけま す。 AdLint は、(現時点では) ANSI C89 / ISO C90 / 一部 ISO C99 規格に準拠した C 言語 のソースコードを解析することができます。 AdLintRuby で実装されているため、WindowsMac OS X、GNU/Linux、FreeBSD など Ruby がサポートする全てのプラットフォームで利 用することができます。 ライセンス Copyright (C) 2010-2014, OGIS-RI Co.,Ltd. AdLint

  • Re:出てくる警告にどう対処するのかが問題 (#1347764) | 静的プログラム解析ツールの実力は? | スラド

    警告を無視したり、出てくる指摘に「逃げる」ようなコードで対処するプログラマばかりの世界では、まったく品質は向上しない。そして困ったことにそういう所こそ、品質を向上させなくてはいけない元凶だったりする。 # しかも、周りがヤイのヤイの言っても、今まで一度も直らなかったぐらい # 上から下まで、ものを判っていない。 というわけで、このようなツールを使ったからどう、という事ではありません。 このようなツールの出力にどう対処するかが問題。また、このようなツールが 出してくる警告の量から、プログラム改善にかかる時間を正確に見積もる、などの マネージメント能力も大事でしょう。

  • cqual freecode日本語情報ページ - OSDN

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

    cqual freecode日本語情報ページ - OSDN
    iww
    iww 2018/10/29
    2003年くらいでストップしてる?
  • 集中型静的コードチェックツール anyWarp CodeDirector for C/C++|日立ソリューションズ

    集中型静的コードチェックツール anyWarp CodeDirector for C/C++ CおよびC++ソースコードのコードインスペクションにより品質向上に寄与します

  • USB UVC カメラで Motion JPEG を取得 | うーたまっくす