投稿

7月, 2015の投稿を表示しています

Google Test 1.7.0

CentOS 6.5 で Google Test 1.7.0 を使えるようにします。 といってもそれほど難しくありません。 https://code.google.com/p/googletest/ にアクセスし Downloads  を開きます。 gtest-1.7.0.zip  をクリックしてダウンロードします。 指定のフォルダーへ展開します。展開先の親フォルダーとなるところを指定するとその下に gtest-1.7.0 というフォルダーが作成されます。以下はホームフォルダーに展開する例。 $ unzip gtest-1.7.0.zip -d ~ 展開後はこんな感じ $ cd ~/gtest-1.7.0/ $ ls CHANGES         CONTRIBUTORS  Makefile.am  README      build-aux  codegear   configure.ac  include  make  samples  src   xcode CMakeLists.txt  LICENSE       Makefile.in  aclocal.m4  cmake      configure  fused-src     m4       msvc  scripts  test README ファイルに従って libgtest.a を作成します。 $ gcc -isystem ~/gtest-1.7.0/include -I ~/gtest-1.7.0 -pthread -c ~/gtest-1.7.0/src/gtest-all.cc $ ar -rv libgtest.a gtest-all.o Google Test は C++ 用のテストフレームワークですが、extern "C" を使うことと C と C++ の違いを意識すれば C 言語でもテストできるので便利です。

CentOS 6.5 で Visual Studio Code

Windows では長年テキストエディタとして PeggyPro を使用してきましたが、作業が Linux へ移行したり PeggyPro 自体も終了したりしたので次のテキストエディターを探しているところです。 Visual Studio Code というものがマイクロソフトからプレビュー版があるというのでダウンロードしてみました。 https://code.visualstudio.com Linux 64bit 版です。インストールは /opt に入れることにしました。 $ sudo unzip VSCode-linux-x64.zip -d /opt シンボリックリンクを作成します。 $ sudo ln -s /opt/VSCode-linux-x64/Code /usr/local/bin/code インストールできたので実行してみます。 $ code ./Code: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./Code) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./Code) ./Code: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /opt/VSCode-linux-x64/libnode.so) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/VSCode-linux-x64/libnode.so) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/VSCode-linux-x64/libgcrypt.so.11) ./Code: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by

Linux で SATA ドライブのシリアル番号を表示するスクリプト

仕事柄、ストレージを扱うことが多いのですが、SATAドライブのシリアル番号を調べる必要がありました。 サーバーのSATAポートに直接接続されているものであれば hdparm で調べられますが、LSI のSAS-HBA に接続されているドライブには hdparm は使用できません。 こんなときは sg3_utils を使用することで SAS-HBA 越しの SATA ドライブのシリアル番号を取得できます。 sg_sat_identify DEVICE と指定すればドライブの IDENTIFY DEVICE DATA を見ることができます。しかしさすがに見づらいのでスクリプトと od で整形して表示するようにしました。 # シリアル番号の取得 # 入力: # $1 デバイスファイル get_serial_number() { local a=(`sg_sat_identify --raw $1 | od -j 20 -N 20 -t a -A n`) for i in `seq 0 2 18` do if [ "${a[$i + 1]}" != "sp" ] then ser="$ser${a[$i + 1]}" fi if [ "${a[$i]}" != "sp" ] then ser="$ser${a[$i]}" fi done echo $ser } いががでしょうか。 sg_sat_identify がエラーを返したとき終了ステータスを取得する方法がわかりません・・・