Linuxでのプログラムではオープンしているファイルに書き込みや読み込みを行う際にはロックを介さずに行われてします. ファイルに対して排他アクセスを制御するために,fcntlまたはflockを用いて行われることが多い.今回はfcntlを用いてファイルに対してロ…
GDBMを使ってみる3 - 日進月歩からの続き.GDBMに関しては今回が最後かな. データベースのエクスポートとインポート データベースのバックアップをとるときや,異なるバージョンへ移行や移植する場合等にエクスポートとインポートを利用すれば便利. だたし…
日進月歩の続き.これまでに記述していない機能について. シーケンシャルアクセス 格納データのキーに対してシーケンシャルアクセスを行う. シーケンシャルアクセスを行うには以下の2つの関数を用いて行う.datum gdbm_firstkey (GDBM FILE dbf ) datum gd…
GDBMを使ってみる1 - 日進月歩の続き. 今回はgdbmのデータベースに対してデータの挿入と読み込みについて考えていく.まずデータベースとのやり取りにはdatum構造体を用いる. 定義は以下.typedef struct { char *dptr; int dsize; } datum;keyとvalue共…
GDBMは拡張可能ハッシュを使用するデータベース関数のライブラリである.UNIXのdbmに似たようなもの. MySQLやPostgreSQLのような関係データベースではなく,Key-Value格納の組み込み型のデータベースとして利用する. 今回はこの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続いてインス…
Ubuntu10.4にPostgreSQL8.4をインストールを行うとPostgreSQLのエラーメッセージが文字化けする.そこでこの文字化けを解消.$sudo vi /etc/postgresql/8.4/main/postgresql.confでPostgreSQLの設定ファイルを以下のように編集前の行を編集後のように変更す…
CPUのクロック数調整による省電力1 - 日進月歩からの続き.前回はCPUの動作モードやら周波数の段階やらの話. 今回はcpufreqdデーモンの話でも...cpufreqdデーモンは計算機の状況によって動的にCPUの周波数を変える役割がある. 例えば,バッテリーが少なく…
Linuxカーネルのcpufreqの機能を用いてCPUのクロック数を調整することで省電力化を目指す. OSはUbuntu11.10でCPUはCorei7-2600Kを搭載した計算機で実践してみた.まずはcpufreqまわりの設定から. 以下のコマンドで必要なパッケージをインストール.$sudo a…
最近計算機の時刻が進みすぎてニコ動のログインや,他の計算機上でのmake処理でエラーメッセージが表示されるので計算機の時刻を正しく直すことにした.まず,計算機上の時刻にはハードウェアクロックとシステムクロックの2種類が存在する. 名称から何となく…
BerkeleyDBライブラリのバージョン4.8のインストールをUbuntu1.10で行った時のメモ. BerkeleyDBはInMemoryのデータベースとしてFireFoxなどにも利用されている. MySQLやPostgreSQLのような関係データベースとは異なり,Key-Value型のDBMSである.まず以下のOr…
LinuxでSSHサーバを立ち上げると初期設定での認証はパスワード認証となっている. ここではSSHの認証をRSA公開鍵暗号によるものに変更する. まず始めに以下のコマンドで認証で用いる公開鍵と秘密鍵のペアの作成を行う.$ ssh-keygen -b 2048 -t rsa Generating…
設定ファイルの書き換えや開発でvi(vim)を頻繁に用いる場合には,vi(vim)を使いやすい状態にカスタマイズしておくと便利.ユーザごとのカスタマイズを行う場合は以下のファイルを作成する. viの場合 : ~/.exrc vimの場合 : ~/.vimrc vimにおいても"~/exrc"で…
gccでコンパイルを行う際,"stdio.h"などの標準ヘッダファイルをインクルードしているうちはあまり問題視することはないがモジュールごとにソースコードを分割する場合には,自分で作成したヘッダファイルを参照する必要が生じる. この時にコンパイルを行う…
Linux上でGNUコンパイラを用いてコンパイルを行うとき,参照して欲しいライブラリのディレクトリは"-L"オプションで指定することによって指定することが出来る. しかし標準ライブラリのパスなどはシステム側で設定されている為,"-L"オプションで指定するこ…
C言語において時間の計測を行う方法は複数ありそれぞれの特徴を把握して最適なものを選択しなければならない.time time関数を用いる場合は秒単位の精度でしか測定されない. またプロセスの実時間の測定を行う.#include #include int main(){ time_t t1,t2; t…
Ubuntuをインストールするとコンソールが文字化けしていることへの対策以下の内容をホームディレクトリの.bashrcへ追加case $TERM in linux) LANG=C ;; esac
getrusage関数を用いればプロセスの現在のリソース情報をrusage構造体として取得することができる.rusage構造体は以下のように定義されているstruct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used …
任意精度数演算ライブラリの1つであるGMPのインストール手順1.GMPソースコードの入手(http://gmplib.org/)2.展開からインストール %tar zxvf gmp-5.0.2.tar.gz %cd gmp-5.0.2 %configure --enable-cxx /*今回はC++のサポートも追加*/ %sudo make %sudo check…