欢迎来到天天文库
浏览记录
ID:34521174
大小:55.47 KB
页数:3页
时间:2019-03-07
《linux system call quick reference.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、LINUXSystemCallQuickReferencecreateafileordevice("man2open"forfs/open.c8creatinformation)JialongHe9linkmakeanewnameforafilefs/namei.cJialong_he@bigfoot.comhttp://www.bigfoot.com/~jialong_he10unlinkdeleteanameandpossiblythefileitreferstofs/namei.c11execveexecuteprogramarc
2、h/i386/kernel/process.cIntroduction12chdirchangeworkingdirectoryfs/open.cSystemcallistheservicesprovidedbyLinuxkernel.InCprogramming,itoftenusesfunctionsdefinedinlibc13timegettimeinsecondskernel/time.cwhichprovidesawrapperformanysystemcalls.Manualpagesection2providesmore
3、informationaboutsystemcalls.Togetanoverview,use“man2intro”inacommandshell.14mknodcreateaspecialorordinaryfilefs/namei.c15chmodchangepermissionsofafilefs/open.cItisalsopossibletoinvokesyscall()functiondirectly.Eachsystemcallhasafunctionnumberdefinedinor4、h>.Internally,systemcallisinvokdedbysoftwareinterrupt0x80totransfercontrolto16lchownchangeownershipofafilefs/open.cthekernel.SystemcalltableisdefinedinLinuxkernelsourcefile“arch/i386/kernel/entry.S”.18statgetfilestatusfs/stat.cSystemCallExample19lseekrepositionread/write5、fileoffsetfs/read_write.c#include20getpidgetprocessidentificationkernel/sched.c#include21mountmountfilesystemsfs/super.c#include#include22umountunmountfilesystemsfs/super.c23setuidsetrealuserIDkernel/sys.cintmain(void){24getuidg6、etrealuserIDkernel/sched.clongID1,ID2;25stimesetsystemtimeanddatekernel/time.c/*-----------------------------*//*directsystemcall*/26ptraceallowsaparentprocesstocontroltheexecutionofarch/i386/kernel/ptrace.c/*SYS_getpid(funcno.is20)*/achildprocess/*----------------------7、-------*/27alarmsetanalarmclockfordeliveryofasignalkernel/sched.cID1=syscall(SYS_getpid);printf("syscall(SYS_getpid)=%ld",ID1);28fstatgetfilestatusfs/stat.c29pausesuspendprocessuntilsignalarch/i386/kernel/sys_i386.c/*-----------------------------*//*"libc"wrappedsystem8、call*/30utimesetfileaccessandmodificationtimesfs/open.c/*SYS_getpid(FuncNo.is20)*/33accesscheckuser'spe
4、h>.Internally,systemcallisinvokdedbysoftwareinterrupt0x80totransfercontrolto16lchownchangeownershipofafilefs/open.cthekernel.SystemcalltableisdefinedinLinuxkernelsourcefile“arch/i386/kernel/entry.S”.18statgetfilestatusfs/stat.cSystemCallExample19lseekrepositionread/write
5、fileoffsetfs/read_write.c#include20getpidgetprocessidentificationkernel/sched.c#include21mountmountfilesystemsfs/super.c#include#include22umountunmountfilesystemsfs/super.c23setuidsetrealuserIDkernel/sys.cintmain(void){24getuidg
6、etrealuserIDkernel/sched.clongID1,ID2;25stimesetsystemtimeanddatekernel/time.c/*-----------------------------*//*directsystemcall*/26ptraceallowsaparentprocesstocontroltheexecutionofarch/i386/kernel/ptrace.c/*SYS_getpid(funcno.is20)*/achildprocess/*----------------------
7、-------*/27alarmsetanalarmclockfordeliveryofasignalkernel/sched.cID1=syscall(SYS_getpid);printf("syscall(SYS_getpid)=%ld",ID1);28fstatgetfilestatusfs/stat.c29pausesuspendprocessuntilsignalarch/i386/kernel/sys_i386.c/*-----------------------------*//*"libc"wrappedsystem
8、call*/30utimesetfileaccessandmodificationtimesfs/open.c/*SYS_getpid(FuncNo.is20)*/33accesscheckuser'spe
此文档下载收益归作者所有