のぴぴのメモ

自分用のLinuxとかの技術メモ

Cプログラム

プロセスのVSZ,RSSとfree,meminfoの関係を実機で確認する

1.はじめに 1-1.この記事の要旨 1-2.(予習)メモリに関する指標とlinuxのメモリ挙動について 2.検証環境と検証方法 2-1.検証環境 2-2.検証方法 2-3.測定方法 (1)psコマンドによるVSZ,RSS情報の取得 (2)freeコマンドとmeminfo情報の取得 3.結果 3-1.全体の結果…

Linuxのclock_gettime()でナノ秒の時刻を取得し表示する

1.はじめに 2.コードと実行例 (1)コード (2)実行例 3.説明 (1)clock_gettime(CLOCK_REALTIME, &ts) (2)localtime_r( &ts.tv_sec, &tm) (3)printfで出力 1.はじめに clock_gettime()で時刻を取得し時刻をナノ秒で表示するサンプルです。時刻取得といえばgetti…

(linux)x86(32bit)でアセンブラでシステムコールを呼び出す方法。

はじめに 2015.12.28追記 アセンブラでシステムコールを呼びだす方法 参考 はじめに 標準Cライブラリ(Linuxではglibc)に頼らず、システムコールを呼びして見たいなとの思いから、勉強がてらアセンブラでシステムコールを呼びだす方法をまとめてみました。 20…

32bitと64bitプロセスのtime_tのbitsを実機確認してみる

サンプルプログラム 実機確認 32bitプロセスの場合 64bitプロセスの場合 蛇足 32bitプロセスと64bitプロセスで、glibcのtime_t変数のビット数がどう違うのか確認してみました。 サンプルプログラム #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #define sizeof_bits(x) (i</sys/time.h></stdlib.h></stdio.h>…

データ圧縮アルゴリズムを整理してみた

データ圧縮(可逆圧縮)方式についてまとめました。 まとめ 可逆圧縮の実用的アルゴリズムのほとんどは、LZ法を元にしている LZは、ジェイコブ・ジヴ(Jacob Ziv)とエイブラハム・レンペル(Abraham Lempel)が開発した圧縮アルゴリズム LZ法は、LZ77と、LZ78…

configureの作り方(autotoolsの使い方)

はじめに 作成の流れ 手順詳細 必要ファイルの作成 Makefile.am作成(後の作成/修正も可) autoscanコマンドの実行 configure.acファイルの作成&編集 aclocal実行以降 はじめに オープンソースでよくある、configure → make → make installというセットアップ…

ダイレクトIOの実装

ファイルシステム上のファイルにキャッシュを解さずread/writeするためには、DirectIOで操作する必要がある。DirectIOを操作するには、 ファイルをオープンする時に、O_DIRECTオプションを付与する read/writeで操作する際のバッファは、512KB(Linux kernel2…

デーモンは2度forkするのが作法らしい

デーモンプロセス起動時の作法 サンプルプログラム デーモンプロセス起動時の作法 デーモンを起動する場合、2度forkするのが作法らしく、これは「セッションリーダにならないようにすることで端末の制御を誤ってしないように」ということらしい。詳しくはこ…