タグ

Cに関するmasutaka26のブックマーク (45)

  • mixi求人広告のソースコードがコンパイルできない件

    ※追記 あとで気づきましたがmixi Engineer's Blogにプログラムの原文が載ってました。 mixi Engineers' Blog » 求人広告バナー用プログラムを書いた話 つまり以下の文章は私の検索能力の乏しさとmixi Engineers' Blogを購読してないことが露呈するだけの内容なので読まなくていいです。。。 とほほ。 ちょっと前からmixiが、TechCrunchとかにエンジニアの求人広告を出しているのですが、何かソースコードが書いてあるんですよね。↓これ 記号プログラミングというのか、わざと難解にしたソースコードですが、C言語のようなので何が出力されるのか気になりました。 んで、ソースコードを地道に写経したんですが、コンパイルできないんですよ。 main(){ char *s = "We make people happy via technology.";

    mixi求人広告のソースコードがコンパイルできない件
  • 10分で学ぶOpenCV超入門

    C言語を勉強した人がOpenCVを始める取っ掛かりとして使ってもらえれば嬉しいです。配列とか関数は分かるけど、ポインタはちょっと・・・というくらいの人から読めるように書いてみました。 OpenCVとは OpenCVとは画像処理で使える関数がたくさん用意されている関数群(フレームワーク)です。例えばC言語でファイルを読み込むのにfgets()という関数が用意されているように、OpenCVでは画像を読み込むcvLoadImage()という関数が用意されています。勿論、用意されている関数はこれだけではなく、画像をグレースケール化したり画像中から四角形を検出したり、顔を検出したりする関数まで用意されています。 OpenCVでの処理の流れ OpenCVを使ったプログラムの基的な流れは といった流れになっています。以下では、まず始めにstep1とstep3だけを行うプログラムを作成したあとに徐々に複

  • man operator - わからん

    「デーモン君のソース探検」より。このはなかなか萌えますね。こういうチートシート、Haskell で欲しいな。自分でつくろう。

    man operator - わからん
    masutaka26
    masutaka26 2011/11/13
    こんなのがあるのですね。某 Y 氏作の cprio は今も持っています。
  • /dev/keikyuで "ダァ!!シエリイェッス!!" - Shohei Yoshida's Diary

    Linuxデバイスドライバを書く練習。/dev/fizzbuzzにしようかと思ったけど、 なんかあれだったので。まあ中身は fizzbuzzなんですが・・・。 ソース C言語をスクラッチから書くのは慣れない・・・. #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/cdev.h> #include <linux/device.h> #include <asm/uaccess.h> #include <asm/string.h> MODULE_LICENSE("Dual BSD/GPL"); static int keikyu_open(struct inode *i

    /dev/keikyuで "ダァ!!シエリイェッス!!" - Shohei Yoshida's Diary
    masutaka26
    masutaka26 2011/10/30
    おもしろいな。
  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
    masutaka26
    masutaka26 2011/10/22
    今まで void* を引数で受け取って使いたい型にキャストしていたけど、前方参照使えばキャストする必要がないのか。←今さら効能を理解した人。
  • TechCrunch | Startup and Technology News

    We caught up with Antler founder and CEO Magnus Grimeland about the startup scene in Asia, the current tech startup trends in the region, and investment approaches during the rise…

    TechCrunch | Startup and Technology News
  • __builtin_return_addressについて - Shohei Yoshida's Diary

    __builtin_return_address関数の紹介。簡単にいうとある関数が どこから呼び出されたか知ることができる関数です。厳密には 該当の関数を終えたときにどの番地に戻るかということなの ですが、たいてい call命令などの次の命令を示すので、呼び出した 場所の特定も容易にできてしまいます。 私はカーネルデバッグ時に多用します。 ユーザランドであればデバッガを使うことが容易ですが、 カーネルだと若干面倒です。カーネルでもメジャーなアーキテクチャ カーネルデバッガが安心して使えるんですが、マイナーなアーキテクチャだと カーネルデバッガ用のコードが誤っている(経験あり)ということがあるので、 どうしてもprintデバッグに頼ってしまいます。 __builtin_return_addressではアドレスしか知ることができないので, objdumpや nmの併用が基となります。 変数の

    __builtin_return_addressについて - Shohei Yoshida's Diary
    masutaka26
    masutaka26 2011/10/09
    これは便利
  • EmacsにおけるC++ source codeの細かいindent設定方法 (1) - I.S.の日記

    Source codeにおけるindentの流儀についての議論は果てがないように見受けられます。I.S.にとってもindentについては拘りがあり、defaultの設定では満足できないことが多いです。 Emacsではfileの編集中に自動的にindentを行ってくれますが、そのindent方法が自分の好みでなければ、その便利な機能も一転迷惑極まりない機能に成り果てます。 Emacsでは、設定file*1において、以下のようにstyleを選択することができますが、その用意されているstyleの全てが自分の好みでなければ、自分でindent設定を細かく記述するか、手動でひたすらindentしつづけるか、自動indentの苦痛に黙って耐えつづけるしかありません。 (add-hook 'c++-mode-hook '(lambda () (c-set-style "gnu") ; k&r、bsd、

    EmacsにおけるC++ source codeの細かいindent設定方法 (1) - I.S.の日記
    masutaka26
    masutaka26 2011/09/07
    ここまで詳しく解説した記事はなかなかないと思う。
  • Computing Memo of 2004/11/06

    masutaka26
    masutaka26 2011/07/05
    Mac では LD_RUN_PATH でライブラリパスを指定するのではなく、gcc の -install_name オプションにライブラリのフルパスを指定するらしい。$prefix 以外にインストールする時は、これやらないとライブラリをロードできない
  • c-modeの自動インデントを無効化 - Shohei Yoshida's Diary

    emacs C-modeのTAB設定を完全に無効にする - nakayama-blog ここにあるように, デフォルトだと c-modeってコンマとかカッコをタイプしただけで オートインデントされます。自分でスクラッチから書いたような場合は別に これでも問題ないですが、他人の書いたコードを編集している場合は 困ることがあります。 で、上記のサイトでは該当する各キーの機能を unsetしていますが、 TABを除くと c-toggle-electric-state(C-c C-l)で無効化できます。 有効であるか、無効であるかはModelineを見ることで確認できます。 有効な場合 無効な場合 'C/l'だと有効で, 'C'だと無効です。 全部無効にするというのもありですが、切り替えてやるって方が 基的には楽でしょうね。 追記 デフォルトで無効にしておきたい場合は c-mode-hookに以

    masutaka26
    masutaka26 2011/07/02
    実はこれ、php-mode にも有効です。php-mode は c-mode を define-derived-mode() しているので。
  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
    masutaka26
    masutaka26 2011/06/11
  • Cプログラミング診断室

    はじめに 開院準備 昔むかし/ レベル差/ 教育/ ネットワーク/ 情報集め/ 隠すことについて/ プログラムコンテスト/ ドキュメント/ 楽するように/ 手抜きと下手の違い/ 開院 第1部 外来 第1章 普通の初心者 最初から充実した(!?)プログラムが登場 関数を短くし、コメントを改善する 上手になる秘訣/ プログラムの紹介/ 何だ、このプログラムは!!/ 短くするには/ コメントについて/ 無駄な努力をやめよう/ 名前/ 気になる個所/ 修正プログラム/ 課題/ まとめ 第2章 これでもプロ 売りものであるにもかかわらず、超きたない! 構造的な欠陥の指摘〜引数、ポインタの活用 プログラムの紹介/ 「超」基的問題点/ 関数分解/ 構造的欠陥/ 引数を使おう/ ポインタ/ その他/ まとめ(修正プログラム) 第3章 上司が問題 まさに驚異的なプログラムの見というべき 内容の修正から、

    masutaka26
    masutaka26 2010/07/30
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

  • Microsoft Visual Studio Express

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Microsoft Visual Studio Express
  • セクションとか.textとか

    キーワード セクション, オブジェクトファイルフォーマット, .text, プログラムローダ, ELF(Executable and Linkable Format) これだけは覚えよう プログラムは複数のセクションという単位に分割されている 原因と原理 私たちが日ごろ作っているプログラムは、ノイマン型コンピュータ上で動きます。ノイマン型コンピュータというのは、プログラムをメモリに蓄えているタイプのコンピュータ(Program stored computer)を指し、プロセッサとメモリを持ったものは大体ノイマン型です。当然私たちのプログラムもメモリにロードされて動いています。 プログラムが動くとき、さまざまな用途でメモリが使用されます。その用途は、機械語をおくためや、変数として値を格納しておくため、またC言語などでは関数呼び出しを行うためのスタックとして使用するため、mallocなどで動的

    masutaka26
    masutaka26 2010/05/21
    読みやすい。
  • BSS領域はだれが0クリアしているのか? - 答え

    答えは、 1. カーネルが、プログラムのロード時に行う。 なぜカーネルが行っているかの理由はわからないが、ユーザーランドの初期化ルーチンが0クリアするよりも、カーネルが行うほうが圧倒的に効率がよい。 以下、なぜ効率がよいかの説明。 プロセスがロードされるとき、メモリに一度に全てロードされるわけではない。 ページと呼ばれる4KBの塊ごとに分割され、アクセスがあったページだけがメモリにロードされる。 (これを、demand-pagingと言う) このdemand-pagingにより、プロセスの起動時間の短縮と、必要なメモリ量の低減が実現できる。 プロセスが初期値0の変数にアクセスすると、その変数が存在するページ4KBだけがメモリに割り当てられる。 その際、カーネルが0クリアしたページが割り当てられる。 もしユーザーランドの初期化ルーチンが0クリアするとなると、 memset(bssarea,

    masutaka26
    masutaka26 2010/04/09
  • システムプログラム(第3週) - プロセスの概念および操作

    電子・情報工学系 追川 修一 <shui @ cs.tsukuba.ac.jp> このページは,次の URL にあります. http://www.coins.tsukuba.ac.jp/~syspro/2005/No3.html システムプログラムのホームページ(2005年度) http://www.coins.tsukuba.ac.jp/~syspro/2005/ からもリンクが張ってあります. 今日の内容 プロセスの概念:プロセスとプログラムの関係,プロセスの構造,機能,属性,生成,パイプ プロセスの操作:コマンド,システムコール,ライブラリ関数 プロセスの概念と機能 プログラムとプロセス プログラムは,CPUが実行できる機械語命令とそれにより処理されるデータの集合(実行形式,ロードモジュール)がファイルに格納されたものである. 他に,ヘッダと呼ばれる部分には機械語命令やデータなどの各

    masutaka26
    masutaka26 2010/04/09
    分かりやすいし、おもしろい。
  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
    masutaka26
    masutaka26 2010/03/13
  • closure-test.c

    masutaka26
    masutaka26 2010/03/13
    C でクロージャ
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    masutaka26
    masutaka26 2009/11/08
    C プリプロセッサの変態的な使い方