开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:Linux 操作系统提供的系统调用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/10973
Linux 操作系统提供的系统调用
首先看一下同文件vi / usr / include /i386-linux- gnu / asm / unistd _32.h
如下:
#fndef _ ASM _X86_ UNISTD _32_ H
# define _ ASM _X86_ UNISTD _32_ H
/*
* This file contains the system call numbers .
/*
# define _ NR _ restart _ syscall 0
# define _NR _ exit 1
# define _NR _ fork 2
# define - NR _ read 3
# define - NR _ write 4
# define _NR _ opdGi 5
# define _ NR _ close 6
# define _ NR _ waitpid 7
# define _ NR _ creat 8
# define _ NR _ link 9
# idefine _ NR _ unlink 10
# define _NR _ execve 11
# define __ NR _ chdir 12
# fdefine _ NR _ time 13
# define _ NR _ mknod 14
# define _ NR _ chmod 15
# define _NR lchoWn 16
# define _ NR _ break 17
# define _ NR _ oLdstat 18
# define _ NR _ Lseek 19
# define _ NR _ getpid 20
# define _ NR _ mount 21
# define _ NR _ umount 22
# define _ NR _ setuid 23
# define _ NR _ getuid 24
# define __ NR _ stime25
# define _ NR _ ptrace 26
# define _ NR _ alarm 27
# define _ NR _ oldfstat 28
# define _ NR _ pause 29
# define _ NR _ utime 30
# define _ NR _ stty 31
# define _ NR _ gtty 32
# define _ NR _ access 33
# define _ NR _ nice 34
# define _ NR _ ftime 35
# define _ NR _ sync 36
# define _ NR _ kill 37
# define _ NR _ rename 38
# define _ NR _ mkdir 39
# define _ NR _ rmdir 40
# define _ NR _ dup 41
# define _ NR _ pipe 42
# define _ NR _ times 43
# define _ NR _ prof 44
# fdefine _ NR _ brk 45
# define _ NR _ setgid 46
usr include 下的一个 386 asm 下的 unistd _32.h打开.h之后发现在.h中定义了很多红,每一个红都代表一个系统调用号,例如向内核提供一个 open 函数,操作系统会给open函数分配一个系统编程,这个系统调用号等于5,关闭文件 close 函数有一个系统调用号值对应,系统调用号是6,通过这个同文件当中定义的红可以看出来大约内核提供了三百多个函数,fork 这个函数将来会讲,fork 函数系统调用号是2,exit 函数系统调用号是1,将来会继续讲其他的函数,这里面以前学过 kill 命令,kill命令用来杀死进程,kill 执行命令要调用 kill 函数,通过 kill 函数来杀死一个进程,kill函数就是一个系统调用,通过这个同文件可以看到操作系统大约提供了三百个内核函数,了解了系统调用,内核提供了哪些函数,在.h中每一个系统调用都会有一个红与之对应,大体知道了有哪些系统调用。