C言語

fcntlでのファイルのロック

Linuxでのプログラムではオープンしているファイルに書き込みや読み込みを行う際にはロックを介さずに行われてします. ファイルに対して排他アクセスを制御するために,fcntlまたはflockを用いて行われることが多い.今回はfcntlを用いてファイルに対してロ…

GDBMを使ってみる4

GDBMを使ってみる3 - 日進月歩からの続き.GDBMに関しては今回が最後かな. データベースのエクスポートとインポート データベースのバックアップをとるときや,異なるバージョンへ移行や移植する場合等にエクスポートとインポートを利用すれば便利. だたし…

GDBMを使ってみる3

日進月歩の続き.これまでに記述していない機能について. シーケンシャルアクセス 格納データのキーに対してシーケンシャルアクセスを行う. シーケンシャルアクセスを行うには以下の2つの関数を用いて行う.datum gdbm_firstkey (GDBM FILE dbf ) datum gd…

GDBMを使ってみる2

GDBMを使ってみる1 - 日進月歩の続き. 今回はgdbmのデータベースに対してデータの挿入と読み込みについて考えていく.まずデータベースとのやり取りにはdatum構造体を用いる. 定義は以下.typedef struct { char *dptr; int dsize; } datum;keyとvalue共…

GDBMを使ってみる1

GDBMは拡張可能ハッシュを使用するデータベース関数のライブラリである.UNIXのdbmに似たようなもの. MySQLやPostgreSQLのような関係データベースではなく,Key-Value格納の組み込み型のデータベースとして利用する. 今回はこのGDBMの使い方をGDBMから探っ…

GDBMインストール

Ubuntu10.4にデータベースの一種であるGDBM(GNU dbm)をインストールする. 対象バージョンはgdbm-1.10.まずGDBMよりtar.gzファイルをダウンロードする. wgetを用いてのダウンロードは以下.$wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz続いてインス…

includeファイルのパス設定

gccでコンパイルを行う際,"stdio.h"などの標準ヘッダファイルをインクルードしているうちはあまり問題視することはないがモジュールごとにソースコードを分割する場合には,自分で作成したヘッダファイルを参照する必要が生じる. この時にコンパイルを行う…

共有ライブラリの設定

Linux上でGNUコンパイラを用いてコンパイルを行うとき,参照して欲しいライブラリのディレクトリは"-L"オプションで指定することによって指定することが出来る. しかし標準ライブラリのパスなどはシステム側で設定されている為,"-L"オプションで指定するこ…

時間の計測を行う

C言語において時間の計測を行う方法は複数ありそれぞれの特徴を把握して最適なものを選択しなければならない.time time関数を用いる場合は秒単位の精度でしか測定されない. またプロセスの実時間の測定を行う.#include #include int main(){ time_t t1,t2; t…

プロセスの使用リソース情報を得る

getrusage関数を用いればプロセスの現在のリソース情報をrusage構造体として取得することができる.rusage構造体は以下のように定義されているstruct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used …