私はLinux監査を解析するプログラムを作成しており、システムコール名と番号の間にマップを作成する必要があります。システムコールは/usr/include/asm/unistd_64.hから来て、次の形式を取る:リストの理解は、次のコードを読みやすくしますか?
#define __NR_read 0
#define __NR_write 1
#define __NR_open 2
#define __NR_close 3
次のコードは動作します:
SYSCALLS = {}
SYSCALL_HEADERS="/usr/include/asm/unistd_64.h"
with open(SYSCALL_HEADERS) as syscalls:
for line in syscalls:
if "_NR_" in line:
sysc, syscn = re.split('_NR_| ', line.strip())[2:]
SYSCALLS[syscn] = sysc
をしかし、少し長い息切れようです。リストの理解度を使ってコードを短縮して読みやすくする方法はありますか?
私は、これは意見のより問題だと思い...私見長く複雑なリスト内包は、コードを作ります読みにくく、コードを他の人が読んでいる場合は注意深く使用してください。私は個人的には、コードとその意図について少し教えてくれる変数の助けを借りているのが好きです... – BorrajaX
それは超有効なポイントです。フィードバックをお寄せいただきありがとうございます! – Shibby