コンパイルしたgccnバージョンを知りたい。
gobjdump -s --section .comment /path/binary
プログラム(バイナリ)が一致するのか。
elfdump -k program
checksum値を比較してみる。
gobjdump -d program
逆アセンブルして比較してみる。
2013年1月24日木曜日
gobjdump elfdump
2013年1月22日火曜日
Toast 11 Titanium 再インストール
Mac OSクリーンインストール後、
Toast 11 Titaniumをインストールしようとした。
アプリバンドルで購入。
販売元のダウンロードサービスが期限切れでダウンロードできない。
開発元のダウンロードサービスは、購入コードが必要。
直接購入していないので該当するような購入コードを持っていない。
Time Machine からコピー。
・アプリケーションフォルダ内のToast11フォルダ
・ライブラリ内のToast11のメニューテンプレライブラリ(場所は...)
これがないとメニューテンプレ選択でない(1種類のみとなる)
Time Machineから単純にコピーしただけだと、
Toast11起動時に常に
xxxが変更を加えようとしています
とMacの管理者パスワード入力を尋ねられる。
パスワード入力すると起動はする(使えるのかは未確認)
アプリケーションフォルダ内のtoast11フォルダを
圧縮解凍すると特権等カレントユーザーに合致した状態と
なったようで起動した。
iDVDで作成したTSフォルダをDVDに焼くことができた。
iDVDをMountain Lionで使用する方法はあとで追記する。
2012年12月27日木曜日
C言語 デバッグ用マクロ
http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html#Variadic-Macros
#define DMSG_ERR( p_fmt, ...) printk(KERN_ERR "cpu:%d %s:%d (%s) " p_fmt, smp_processor_id(), __BASENAME__, __LINE__, __func__, ## __VA_ARGS__)
#define DMSG_WARNING(p_fmt, ...) printk(KERN_WARNING "cpu:%d %s:%d (%s) " p_fmt, smp_processor_id(), __BASENAME__, __LINE__, __func__, ## __VA_ARGS__)
#define DMSG_NOTICE( p_fmt, ...) printk(KERN_NOTICE "cpu:%d %s:%d (%s) " p_fmt, smp_processor_id(), __BASENAME__, __LINE__, __func__, ## __VA_ARGS__)
#define DMSG_INFO( p_fmt, ...) printk(KERN_INFO "cpu:%d %s:%d (%s) " p_fmt, smp_processor_id(), __BASENAME__, __LINE__, __func__, ## __VA_ARGS__)
2012年12月20日木曜日
2012年12月19日水曜日
(DVD)メディアのチェックサム md5sum
チェックサム md5sum
(DVD)メディアは単純にチェックサムを比較することが出来ない。
http://www.debian.org/CD/faq/index.ja.html
$ /usr/bin/isosize -x /dev/hdc
sector count: 4425, sector size: 2048
$ dd if=/dev/hdc count=4425 bs=2048 | md5sum
書き込み済みの光学メディアを検証する場合
メディアの種類によっては ISO イメージにあるものよりも多くのバイト数を返してくる可能性
この後方に付くゴミは TAO モードで書き込まれた CD、追記された DVD-R[W]、
フォーマット済みの DVD-RW, DVD+RW, BD-RE、さらに USB キーの場合不可避
ISO イメージ自体にあるのと正確に同数のセクタのデータをメディアから読み込む必要があり
メディアからそれ以上に多くのバイトを読み込んだ場合チェックサムの結果は違うものになる
2012年12月14日金曜日
環境変数
forkした子プロセスは、環境変数も引き継ぐ。
getenv
putenv
setenv
unsetenv
environ (7) 大域変数
clearenv すべての環境変数をクリアする(空にする)posixでない!?
su コマンドを '-' 付加して実行すると、環境変数は引き継がない。
シェルをログインシェルにする。
/etc/profile.d/*.sh に環境変数を設定する各種スクリプトがある。
すべての環境変数を表示する。
$ gcc -Wall -o my_printenv my_printenv.c
#include <stdio.h>
extern char **environ;
int main()
{
char **ep = environ;
char *p;
FILE *fptr;
fptr = fopen("/tmp/xxx.txt", "a");
fprintf(fptr, "-------------\n");
while ((p = *ep++))
fprintf(fptr, "%s\n", p);
fclose(fptr);
return 0;
}