จาก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]