C言語によるWindowsプログラミングの解説サイトです。 書籍Windows Internalsの解説はこちらをご確認ください。
おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 最速と言われる JSON パーサ「rapidjson」が本当に爆速なのか試してみた。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、JSMNを試してみた。 何も見ずにC++でjsonパーサが書けるか試してみた。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! C言語から使えるJSONパーサ、jansson がとても直感的で良い Big Sky :: C++ で STL フレンドリに扱えるJSONパーサ「json.hpp」 結
主にC言語のcursesというライブラリを使用して、端末上で動くブロック崩しを作らされ作りました。何か大した事していないのに、無駄に長くなってしまいました。。ソースコードは一応こちらにあります。 https://github.com/hyde2able/BreakOut cursesとは cursesは端末に依存せずに適切な方法で画面を更新したりするためのライブラリです。curses.hをインクルードすると、端末上の文字の色を変えたり、座標を指定して文字を配置できたりします。ターミナル上で動くプログラム、例えばviエディタなどはこれを使用しています。 Cursesライブラリの関数 ライブラリにいろいろと関数が用意されているが、その中で比較的使うものと使えそうなものを簡単にまとまる。 カーソルの移動 int move(int y, int x); // カーソルを(x, y)に移動させる i
いまや grep、ack、ag、pt、sift など様々な grep ツールが存在し、高速 grep ツール戦線が激化している昨今ですが、いかがお過ごしでしょう。私は普段から検索ツールには pt を使っていますが、ふとしたことから文字列探索アルゴリズムに興味がわいてきて highway という高速パターンマッチングツールを開発しました。pt や sift が流行りの Go 言語で実装されている中、我が道を行く highway は C 言語での実装にしました (単に Go 言語を知らないだけとも言う\(^o^)/)。 highway (github) highway とは マルチスレッドで動作する高速パターンマッチングツールです。速そうな名前をつけたくて「高速」でググったら「高速道路」がたくさん出てきたのでこの名前になりました。そりゃそうだ。 機能 基本的な機能としては pt とほぼ同じです
pthread で NPTL が使われてるかどうか確認したかったのだけど、ただしく確認する方法がよくわからなかったので confstr で調べた。 #include <malloc.h> #include <stdio.h> #include <unistd.h> int main() { char *buf; size_t n; n = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, (size_t) 0); buf = malloc(n); if (buf == NULL) { printf("Cannot allocate memory\n"); return; } confstr(_CS_GNU_LIBPTHREAD_VERSION, buf, n); printf("%s\n", buf); } 昔の LinuxThreads では SIGUS
Ruby I/O — stdio considered harmful — akr@m17n.org Ruby (1.9) I/O stdio stdio C nonblocking I/O stdio stdio 1 C stdio (Standard Input / Output) Ruby[rub] stdio I/O Ruby 1.9 stdio 1 Ruby Ruby 1.8 Ruby 1.9.0 Ruby • Ruby (1.8.3) stdio • Ruby (1.9.0) stdio 1 2 Ruby I/O 3 stdio 4 POSIX I/O 5 stdio 6 7 8 9 2 Ruby I/O Ruby I/O IO Unix Ruby 1 stdio stdio Ruby getc, ungetc, fwrite 12005–03 kernel stdio Rub
Portable Coroutine Library (PCL) The Portable Coroutine Library (PCL) implements the low level functionality for coroutines. For a definition of the term coroutine see The Art of Computer Programming by Donald E. Knuth. Coroutines are a very simple cooperative multitasking environment where the switch from one task to another is done explicitly by a function call. Coroutines are a lot faster than
Ruby用拡張ライブラリをCで作る Rubyは、C(あるいはC++)で書いたコードを動的(あるいは静的)にリンクして利用する事ができる。うまく使えば、Rubyで書くより高速な動作が期待できる。 たとえば、GUIライブラリである「Ruby/GTK」は、描画部分にCで書かれたライブラリを利用する事で、実用的な画面描画速度を確保している。 その、Ruby用拡張ライブラリをCで書く方法である。 ■ 拡張ライブラリ作成の流れ Rubyはオブジェクト指向言語である。オブジェクト指向言語におけるプログラムとは、基本的にクラス定義である(と、少なくとも私は思っている)。そこで、ここではクラス定義に話を絞る。 メソッドの実体となる関数を定義する Init関数を作る rb_define_classで、新しいクラスを作る rb_define_methodで、クラスに1で作成したメソッドを追加する Makefil
This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release. Python/C API Reference Manual¶ This manual documents the API used by C and C++ programmers who want to write extension modules or embed Python. It is a companion to Extending and Embedding the Python Interpreter, which describes the general
gccのinclude パスについて調べたい。いっつも何処から読んでるのかよくわからない。 小手先で調べた。 ソースをコンパイルして調べてみる takuya@air:~$ cat test.c #include <stdio.h> int main(){ return 0; }gcc -v test.cと-v オプションをつけると、詳しい状況が表示されます。これをつかってインクルードパスについて調べみた。 -v で調べてみたら・・ takuya@air:~$ gcc -v test.c Using built-in specs. Target: i686-apple-darwin11 (略 #include "..." search starts here: #include <...> search starts here: /usr/llvm-gcc-4.2/bin/../lib/gc
待望のC/C++ IDEをCLionとして公開致します! JetBrainsはソフトウェア開発を生産的で楽しいものにするため常に注力しています。Javaのシンプルなリファクタリングツールに始まり、Java、.NET、Python、Ruby/Ruby on Rails、PHP、JavaScript、HTML、Objective-Cなど様々な言語、プラットフォームに対応してきました。 JetBrainsのスマートなツール群はコードの品質を高めたり、効率良くリファクタリングしたりコーディング出来ることで広く知られています。 CとC++はプログラミング言語の中でも特に歴史が長く、原始スープ(primordial soup)の中でも根強く生き残っているの言語として認識されています。そこでJetBrainsは信念に基づき、C/C++デベロッパの作業をより効率的なものとするため専用のIDEをリリースする
コンピューター:C言語講座:マルチスレッドについて マルチスレッドの特徴 一般的なサーバプログラムでは、多数のクライアントからの処理をできるだけリアルタイムに処理するために、何らかの形で並列処理を行うことが多いものです。たとえば、データベースサーバで、ある検索処理に時間がかかっている間ほかのクライアントが接続すらできない、という状態ではサーバとして失格でしょう。 並列処理を実現する方法としては、 ・プログラム自体を並列処理可能に記述する ・プロセスをもともと多数起動しておく ・fork()を使って子プロセスを起動するマルチプロセス処理 ・マルチスレッドを使用する などが考えられます。プログラム自体をリアルタイム性を考慮しながら記述するのはなかなか大変で、しかもソースが複雑になりメンテナンス性も問題が多くなりがちです。プロセスをもともと多数起動するのは簡単ですが、クライアントがどのプロセスに
二十五日半狂乱、6日目(の分...orz)の記事 Cのエラーハンドリングを毎回やるのは面倒だ! 前回も言ったが、Cではエラーハンドリングに戻り値とerrnoを用いる. それはそうと例外設計において"無視"は大罪である. だから、関数を呼び出したら戻り値は漏らさずチェックすべきだ. ということで、例えば以下のように逐一戻り値をチェックする. if(send(sockfd, buf, len, 0) < 0){ ERROR("send"); exit(1); } あぁ、面倒だ. 一体コードのどの部分が正常系の処理なのか? ほとんどエラーハンドリング*1で埋め尽くされるじゃないか. そもそもエラーハンドリング部分に書くのは毎回同じコードだし、コードの繰り返しは防ぎたい. エラー処理部分をラッピングして楽をする unpv12eの中でラッパーを被せることによってこの面倒を回避する方法を知った. in
_ 今、Cで開発するためのスタンダードを知るための本 例によってアスキーの鈴木さんから、本をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、その本の翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や
Despite the ubiquitous nature of C it’s sometimes difficult to find just what you need, and you’re especially lucky if it’s not part of some gigantic library of unrelated code. For this reason I’ve decided to create Clib, a GitHub organization aimed at providing small, focused, discoverable “micro libraries”. Using ClibClib is a suite of small C libraries that you can manually copy/paste into your
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く