タグ

C言語に関するAkinekoのブックマーク (17)

  • C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita

    インクルードするだけで使えるNon-movingで正確なGCをC言語用に作りました。 行数がコメントを除いて100行に満たない非常に小さなライブラリです。 GCのアルゴリズムとしてはCheneyのコピーGCを採用しています。 通常のCheneyのコピーGCではメモリ空間のうち半分が無駄になってしまいメモリ効率が悪かったり、 GC発生時にオブジェクトが移動してしまいC言語のようなポインタを直接触れる言語との相性が悪いという欠点がありました。 今回はヒープ全体を二重連結リストとして管理することでそのような問題を解決しています。 ちなみにこれはTreadmill GCのアイデアと同じです。(が、アルゴリズム自体はTreadmill GCではありません。) APILinuxのlist.hに非常に近い見た目になっています。 ある構造体をgcで管理したい場合はstruct gc_head型のメンバを

    C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
  • Cのプロダクトを作るためにやったこと - Tomohisa Oda

    今年に入って Octopassというプロダクトを公開しました。それは、Linuxのユーザや権限をGithubのTeamと連携して運用を楽にするというツールでした。色んな方々のご協力により、多くのRetweetやはてぶいただいたことで、ある程度、Octopass を必要としそうな人の目に触れたのではないかと思っています。(Githubのスター数が少ないのは今後の課題)その中で「すごく便利」「ぜひ導入したい」というフィードバックは、継続して機能追加していくというモチベーションにつながっていて、非常にありがたいです。 さて、この Octopass は、Linuxユーザ名前解決をするためにの glibc の libnssモジュールをCで実装しています。cgoやその他の言語でShared Objectを吐き出しても良かったのですが、それだと技術的挑戦が足りないとして、触れてこなかったCに挑戦しました

    Cのプロダクトを作るためにやったこと - Tomohisa Oda
  • linuxカーネルで学ぶC言語のマクロ - Qiita

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

    linuxカーネルで学ぶC言語のマクロ - Qiita
  • 変数からポインタまで、5分でわかるC言語入門(C11対応版) - paiza times

    こんにちは、吉岡(@yoshiokatsuneo)です。 Java, C#, C++、Objective-C, Ruby, Python, JavaScript, Java, Swift...などなど、現在は非常に多くのプログラミング言語が使われていますが、多くの言語の源流となっているのがC言語です。 もともとC言語は、LinuxMac OS Xの源流となるUNIXの開発のために作られた言語で、今でもLinuxはC言語で書かれていますし、多くのOSがCやC++で開発されています。 さらに、C言語はコンピュータを直接操作することに向いているため、組み込みやIoT(Arduino, mbed等)などの用途でも広く使われています。 C言語の文法は、多くのプログラミング言語の文法に影響を与えています。 名前にCが含まれているC++、C#、Objective-Cはもちろん、Java, JavaSc

    変数からポインタまで、5分でわかるC言語入門(C11対応版) - paiza times
  • C言語アプリケーションにPyPyを埋め込む | POSTD

    from my_library import ffi, lib @ffi.def_extern() def compute(first, second): """ Compute the absolute distance between two numbers. """ return abs(first - second) この実装のスニペットには、適切に埋め込むための特別な仕様が含まれています。1行目で、ダイナミックライブラリから ffi と lib オブジェクトをインポートします。これによって、cffiが提供する関数へアクセスしての実装が可能になり、メモリの割り当てなど、より複雑なタスクに利用できるようになります。 my_library という名前と、ダイナミックライブラリのどの名前に対応するかは下記に定義しました。 次にスニペットを見て気づくのは、 @ffi.def_extern

    C言語アプリケーションにPyPyを埋め込む | POSTD
  • http://blog.monoweb.info/blog/2012/07/14/c99-array/

  • Index

    The new location of my blog is here: https://llbit.github.io/

  • UNIX/Linux/C言語 サンプル多く説明少なく -PG's PocketArms

    当サイトは、UNIX/Linuxにてよく使用されるコマンド/ツールの使用例や言語の入門やコード事例を掲載しております。 深い理解は求めずに、手っ取り早く使えるように、使用例(サンプル)を中心にしています。 情報の正確さには注意を払っておりますが、誤りや適切でない記述を掲載してしまうかもしれません。 当サイトの情報をご利用いただく際は、どうか、ご自身で十分検証を行ってください。 なお、当サイトのをご利用になられて発生した損害については、当方は一切責任を負いかねますので、あらかじめご了承願います。 また、掲載内容についてのご質問はご遠慮願います。

  • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

    最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ

  • Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。

    前回は JSMN というのを試したけど、今度も matsuu さんのブクマから。。。 parson Lightweight json parser and reader written in C. http://kgabis.github.com/parson/ 特徴は 軽い (2ファイルだけ) 単純なAPI ドット記法による json 値のアドレッシング (C言語の構造体やOO言語のオブジェクトに似た感じ。例: "objectA.objectB.value") C89 コンパティブル テストスーツ 前回の JSMN とは違い、メモリを動的に確保するタイプ。DOM の様にルートノードから探索を始め、最終的にルートノードを指定してメモリを開放する。 今回もtwitterのタイムラインをパースしよう。 #include <assert.h> #include <string.h> #inclu

    Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • そろそろ『test driven development for embedded c』について書いてみる · Futurismo

    25 Aug, 2012 · by admin · Read in about 3 min · (1428 Words) 組込み <div class='amazlink-info' style='height:160; margin-bottom: 10px'> <div class='amazlink-name' style='margin-bottom:10px;line-height:120%'> <a href='http://www.amazon.co.jp/Test-Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X%3FSubscriptionId%3DAKIAJBCXQ4WQGJ7WU3WA%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025

  • 2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵

    12ステップで作る組込みOS自作入門 出版社 : カットシステム (2010/05) 発行日 : 2010/05 前回の初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵は汎用OSでしたが今度は組込みOSです。参考書は『12ステップで作る組込みOS自作入門 』です。こいつぁすげえや。丁寧に仕上げられた良書でした。 「組込み」とタイトルがついているので興味を示す層が狭そうですが、プログラムを書く多くの人にとって役立つ内容だったと思います。 前回は必死にわかんないーわかんないーを連呼しつつ頭を抱えて苦行みたいな感覚でやっちゃいましたけど、今回はそんな苦労もあったからか余裕を持って楽しめました。 書ではWindowsだけではなくLinuxでも開発できるよう解説されているのでどんな環境でも問題ありません。Linux入れるのがめんどくさかった私は例によって

    2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵
  • 初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵

    30日でできる! OS自作入門 出版社 : 毎日コミュニケーションズ 発行日 : 2006/3/1 良いです。アカデミックの匂いが良い意味で全くしない。その上での実践的なは日語で他に無いと思います。ガチムチアカデミックの批判にあえて真っ向勝負してるような意欲作です。 正しい知識だの用語だのそんなもんはどうでもいいから手を動かしてやってまえみたいな感じで。こういうのは頭いい人たちから批判されやすいですね。俗物な私にはぴったりでしたが。 書はWindows用のサンプルしかないんですがMac用に整えたので、それ公開するついでに思ったことつらつらと書いときます。 開発環境 Mac サンプルがWindows用なのでいろいろMac仕様にしなきゃいけない(後述) テキストエディタ EmacsだのVimだのなんでもいいので適当に用意 バイナリエディタ Macだと0xEDが良い http://www

    初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵
  • エスケープシーケンス - C言語 - 碧色工房

    サイトトップ 過去のコンテンツ C言語 エスケープシーケンス コンソール制御について、より詳しく、実際の出力例などを上げながら、 まとめたページを作りましたので以下も参照ください。 エスケープシーケンス ANSIエスケープコード コンソールグラフィック CUI のコマンドラインで動くプログラムを書く上でカーソルの位置などをコントロールできたらと思うことがあります。 こいつを実現するには、「エスケープシーケンス」というものを使います。 しかし、このエスケープシーケンスはハードウェアやOSに依存した部分が多いので注意が必要です。 とりあえず、 Windows 2000/XP (おそらく NT も)のコマンドプロンプトでは機能しない ※ことを確認しました。(ただし、 Cygwin 上では使用可能でした) MS-DOS プロンプトでは一部動くことを確認しました(一部が動いたのではなく、一部確認した

    エスケープシーケンス - C言語 - 碧色工房
  • 闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~

    ※このまとめに含まれるプログラムは一種のパズル的な遊びです。 くれぐれも用法用量を守った上で正しくご利用ください>< 実用するならば、“言うまでもなく” if か ?: を利用すべきです。 やばい連中に喧嘩を売ってしまった……。 続きを読む

    闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~
  • IOCCC Main

    Your browser should have redirected you to here

  • 1