Cに関する記事とニュース
-
2007/12/26
pthreadについて(条件変数・モデル)
pthreadはPOSIX仕様に基づくOSにおける非同期処理の仕組みです。他の非同期処理と比較すると新しい仕組みですが、その奥は深くさまざまな機能を持っています。本稿では条件変数の概要、気をつける点、同期と条件変数を使用したアプリケーションを解説します。
-
2007/12/12
pthreadについて(同期)
pthreadはPOSIX仕様に基づくOSにおける非同期処理の仕組みです。他の非同期処理と比較すると新しい仕組みですが、その奥は深くさまざまな機能を持っています。本稿ではpthreadの同期方法を解説します。
-
2007/12/04
pthreadについて(概要・生成)
pthreadはPOSIX仕様に基づく非同期処理の仕組みです。他の非同期処理と比較すると新しい仕組みですが、その奥は深くさまざまな機能を持っています。本稿ではpthreadの概要、プロセスとスレッドの違い、生成方法を解説します。
-
2007/11/14
【第1回】オブジェクトとクラス
C言語をメインの開発言語とする組込み開発の世界でも、オブジェクト指向の考え方に基づいてデザインされたフレームワークやライブラリなどに触れる機会が増えています。本稿では、具体的なC言語のコードを用いながらオブジェクトやメッセージ、クラスといったオブジェクト指向の基本的な概念を解説します。
-
2007/10/15
signalについて(後篇)
シグナルを利用するにあたっては注意すべきポイントがあります。また、シグナルハンドラを使用せずに最適化するやり方や、別の非同期処理であるスレッドとの共有方法等、実装をさらに改良していく方法を紹介します。
-
2007/10/10
signalについて(中篇)
前篇に引き続きシグナルについて解説します。今回は実際にシグナルを使った実装を紹介し、さまざまな場面に応じた使用法と注意点を説明します。また、シグナルを元に、Linux/Unixシステムコールプログラミングにおける特徴や注意点にも述べていきます。
-
2007/10/04
signalについて(前篇)
シグナルはUNIXなどのOSにおける非同期イベントを通知する仕組みです。古くからある仕組みですが、その奥は深くさまざまな機能を持っています。本稿ではシグナルの概要と一般的な処理方法を解説します。
-
2007/09/14
文字コードから画像ファイルを生成する
本稿ではプログラムによって文字の画像ファイルを作成する方法を紹介します。まず始めにビットマップファイルの構造を説明し、その後、Cを使って文字コードから画像を生成するプログラムについて解説します。
-
2007/08/09
MySQLのシステムアーキテクチャ
オープンソースを眺めるのは楽しいものです。そこには多くの開発者が時間をかけて作り上げた功績があります。本稿ではMySQLのアーキテクチャを読み解くにあたり、読者が自分でソースコードやドキュメントを見て回れるように、基本的なロードマップを示していきます。
-
2007/03/13
CUnitによるテスト駆動開発
JavaやC#などのオブジェクト指向言語の世界ではテスト駆動開発がポピュラーな手法となりました。テスト駆動開発はオブジェクト指向言語だけのものではありません。Visual C++ 2005 Express Edition 環境下で、CによるUnit Test Framework: CUnitを使ってのテスト駆動開発の手順を紹介します。
-
2007/02/14
Cで実現する「ぷちオブジェクト指向」
オブジェクト指向言語全盛の今なお、Cは現役で活躍しています。手続き型言語であるCでオブジェクト指向のエッセンス、「抽象データ型」と「継承」を実現するコーディングスタイルを試みます。
-
2007/01/04
各ブラウザのproxyサーバ情報を読み出して利用する
自前のWebクライアントを作成する場合、proxy経由のWebアクセスも考慮する必要があります。このとき、Webブラウザの設定情報からproxyサーバに関する情報を拾ってこれれば便利です。本稿では、代表的な3つのブラウザ(IE、Firefox、Opera)を対象にその方法を解説します。
-
2006/08/29
インラインアセンブラで学ぶアセンブリ言語 第3回
前回は、インラインアセンブラを用いた演算を紹介しました。本稿では、さらにステップアップし、アセンブリ言語による条件分岐や繰り返しなど、プログラムの流れを制御する方法を解説します。
-
2006/07/12
SIDによるアカウントの列挙
システムに存在するアカウントは、SIDと呼ばれる可変長の数値で識別されています。SIDは一意になるよう設計されており、特定のアカウントのSIDはある法則に従って作成されます。本稿では、その法則を利用して特定のコンピュータ上に存在するアカウントの名前を列挙する方法を紹介します。
-
2006/07/08
インラインアセンブラで学ぶアセンブリ言語 第2回
本稿では、前回に続いてVisual C++のインラインアセンブラの機能を用いてアセンブリ言語を使ったプログラミングを体験していただきます。前回は、Visual C++のインラインアセンブラの機能を利用しましたが、本稿ではインラインアセンブラを使いながらアセンブリ言語の基本について解説します。
-
2006/06/05
インラインアセンブラで学ぶアセンブリ言語 第1回
本稿では、敷居が高く実用性も乏しいことから手が出しにくいとされるアセンブリ言語を、Microsoft Visual C++(以降 VC++)のインラインアセンブラを用いて体験していただきます。知識としてアセンブリ言語に興味があるものの、何から始めて良いのか分からないという方も多いと思いますが、VC++を使えばC言語の中にアセンブリ言語を組み込むことができます。
-
2006/05/24
GTK+プログラミング:プレゼンテーション支援ツールの開発
本稿では、2台のPC、またはデュアルディスプレイを備えたPCを使ってアンチョコ付きプレゼンテーションを手軽に実現するツール「Prompter」を例題に、GTK+プログラミングのエッセンスを紹介します。プログラムはLinuxで作成していますが、OSに依存する部分が少ないため他のUnix系OSでも動作させるようにすることは難しくはありません。またプレゼンテーション画面を表示する側のPCは、X Window Systemのサーバが動作していればOSを問わないので、MacやWindowsでも利用できるで...
-
2006/05/15
マウスジェスチャを実装する(Win32版)
GUI環境で簡単にコマンドを送ることができるマウスジェスチャ。最近ではWebブラウザなどにも実装されています。今回はそんなマウスジェスチャをC言語(またはC++言語)を利用して実装する方法を紹介します。
-
2006/05/02
SQLiteで組み込みDB体験
複雑なデータ処理にはデータベースが便利ですが、導入するのに手間がかかります。そこで、本稿で紹介するC言語のライブラリ「SQLite」を使うと、C/C++で書かれたプログラムにライブラリをリンクするだけで、データベースの機能が使えるようになります。
-
2006/04/25
WAVEファイルにリアルタイムで加工を施し再生する
マルチメディア系のプログラムを作成していると、音のデータを扱いたいときもあると思います。今回は読み込んだWAVEに対してモノラル化(またはボイスキャンセル)を施しながら再生してみます。もちろん曲全部をメモリに展開するようなことはしません。