木曜日, 2月 14, 2008

PC環境の整理またまた改訂

多少変更があったので。

2008/2/14現在のPC環境の記録
PC-2(WindowsVista Ultimate)
Board Intel DG965WH
CPU  Intel Q6600(95W)
Memory CFD PC-6400 2GBx2
Graphic nVidia Geforce8600GT
HDD 320GB(Seagate)+160GB(HGST)
DVD Multi IODATA DVR-AN18GL (AD-7173)
Power SOLDAM Varius WPS-335(335W)

300Wクラスの電源でもQuadコアが使えるのね。
グラフィックの性能を上げるために、RADEONからGeforceへ交換。
HDCPに対応していないので、Blu-rayドライブをはずしてDVD Multiへ。

PC-5(WindowsXP SP2)
Board Gigabyte GA-X38-DQ6
CPU  Intel E2160
Memory A-DATA PC-6400 2GBx2
Graphic nVidia Geforce8800GT 512MB GDDR3
HDD 320GB(Seagate)
Blu-rayMulti LG GGW-H20N
DVD-RAM Matsushita LF-D321
CD-R/RW YAMAHA CRW-F1
Power Abee ZUMAX ZU-550Z(550W)

こちらは9000番台のQuadコア待ちのため、E2160のまま。
HDCPの関係でBlu-rayをこちらへ移設。

土曜日, 2月 02, 2008

statfsでディスクのサイズを知る@linux

linuxのソフト開発メモ。

リムーバブルストレージの最大容量分のログの保存のために、最初にログ保存可能件数を計算する必要があった。
dfコマンドつかって、シェルで処理しようかと思っていたが、statfsというシステムコール関数があることを発見。
dfコマンドはこのシステムコールを使用しているらしい。

で、早速テストプログラムを作成し、動作の確認。

マウントしたディレクトリの単位で調べられるので結構他にも使えるかも。

#include
#include
#include
#include

int main()
{
int i,j,k,n;
struct statfs buf;
// statfs("/", &buf );
statfs("/mnt/usb", &buf );
i = buf.f_bsize / 1000 ;
j = buf.f_bfree * i / 1024;
n = buf.f_blocks * i / 1024;
printf("free %d M bytes \n", j );
k = buf.f_bavail * i / 1024;
printf("I can use %d M bytes \n", k );
printf("Disk size %d M bytes \n",n);
printf("test\n");
exit(0);
}