จากsys.cบรรทัด 123:
void *sys_call_table[__NR_syscalls] =
{
[0 ... __NR_syscalls-1] = sys_ni_syscall,
#include <asm/unistd.h>
};
sys_call_tableเป็นตัวชี้ทั่วไปไปยังอาร์เรย์ฉันเห็นว่า อย่างไรก็ตามสัญกรณ์คืออะไร:
[0 ... __NR_syscalls-1]
คืออะไร...?
แก้ไข:
ผมได้เรียนรู้เคล็ดลับ C อีกที่นี่: #include <asm/unistd.h>จะได้รับการประมวลผลล่วงหน้า[0 ... _NR_syscalls-1]และแทนที่ด้วยเนื้อหาและมอบหมายให้
@tristopia คุณพูดถูก สิ่งที่ฉันหมายถึงคือตัวชี้ไปที่อาร์เรย์คล้ายกับ
—
Amumu
char *argv[]. แก้ไขแล้ว.
void (*sys_call_table)[__NR_syscalls]