最近アセンブラの勉強をはじめまして、フフの表を出力したり素数判定をしたり階乗を計算したりと徐々に勉強してみています。そこで問題になるのが、システムコールの番号です。
一度ヘッダーにまとめても良いのですが、検索できるとなお便利です。そこで
こんなちょっとしたシェルスクリプトをつくってみました
#!/bin/sh if [ $# -eq 1 ];then sixtyfourbitp=`uname -a | grep 'x86_64' | wc -l` if [ $sixtyfourbitp -eq 1 ];then headerfile='/usr/include/asm/unistd_64.h' else headerfile='/usr/include/asm/unistd_32.h' fi cat $headerfile | awk \ '/^#define __NR/ { sub(/__NR_/,"",$2) if($2~/'$1'/) printf("%s\t%s\n",$3,$2) }' else echo "Usage: fsysc PATTERN" fi
こんな感じで動作します
$./fsysc.sh write 4 write 146 writev 181 pwrite64 334 pwritev ./fsysc.sh '^write$' 4 write ./fsysc.sh '^write' 4 write 146 writev