Posts Tagged ‘c言語’
Phidgetのデータをc言語で処理@Ubuntu 第1回
Written by tjun on 2008 年 6 月 27 日 – 2:01 PM -
Phidgets というのは有名なセンサーノードの一つで,日本でも買えます.
Phidgets 取扱製品一覧 - ぷらっとオンライン
基本的なキット(おそらく5万円程度)で,明るさセンサ,タッチセンサ,圧力センサ,スライダーセンサ,つまみ型センサ などがついてくるんだと思います.詳しくはぷらっとオンラインのページをご覧ください.
自分は研究室にあったキットを使いました.
今回はプログラムを書くための準備の説明です.
LinuxにおいてPhidgetsを扱うプログラムを書くためには,まずPhidgetsのサイトから必要なものをダウンロードします.トップページから左側のメニューにあるDownloadsのペンギンの絵をクリックします.
Step 1 と書いてある部分からLinux Sourceをダウンロードします.
Step 2 から開発プラットフォーム(今回はC/C++)を選んで,
Step 3 からC/C++のExamplesと, C API Manualをダウンロードしましょう.
最初にダウンロードしたファイル(Phidgetlinux_x.x.x.2008xxxx.tar.gzという感じの名前)を展開すると.Phidgetlinuxというファイルができると思います.中にはphidget21、webserviceというフォルダ,READMEがあるかと思います.
READMEを読めば分かるのですが,次にターミナルでphidget21のディレクトリまでいきます.
cd (展開したフォルダ名)/Phidgetlinux/phidget21そこで,
makeと打つと,プログラムを行う準備ができます.
sudo make install
今日はここまで.
関連する投稿
Tags: c言語, linux, phidget, sensor, ubuntu
Posted in c言語, linux, ubuntu, プログラミング | No Comments »
c言語プログラムのメモリチェックをvalgrindで
Written by tjun on 2008 年 5 月 15 日 – 11:36 AM -
まずvalgrindの導入.
ubuntu-linuxであれば
sudo apt-get install valgrindで入れることができる.
使いかたは,簡単.
まずプログラムを書いて,-gオプションをつけてコンパイルします.
gcc -g hoge.cそして,チェック
valgrind ./a.outではこれで実際どのようになるのか,簡単な例で見てみましょう.
hoge.c
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *num = malloc(10*sizeof(int));
num[10] = '1';
}
配列を越えて書き込んでいます.これをチェックすると
==3734== Invalid write of size 4==3734== at 0x804839A: main (hoge.c:7)などど出て,hoge.cの6行目で不正なメモリアクセスがあるとわかります.
==3734== Address 0x417B050 is 0 bytes after a block of size 40 alloc'd
==3734== at 0x4021620: malloc (vg_replace_malloc.c:149)
==3734== by 0x8048390: main (hoge.c:6)
==3734==
==3734== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 11 from 1)
==3734== malloc/free: in use at exit: 40 bytes in 1 blocks.
==3734== malloc/free: 1 allocs, 0 frees, 40 bytes allocated.
==3734== For counts of detected errors, rerun with: -v
==3734== searching for pointers to 1 not-freed blocks.
==3734== checked 59,628 bytes.
本当はもっとたくさん文章が出てきます.
ですが,この程度のチェックならコンパイル時に
gcc -Wall -g hoge.cとすれば,はじいてくれます.-Wallオプションもいつもつけるようにしましょう.
関連する投稿
Tags: c言語
Posted in c言語 | No Comments »
