分类: LINUX
NAME
syscall - 间接系统调用
SYNOPSIS
#define _GNU_SOURCE
#include
#include /* For SYS_xxx definitions */
int syscall(int number, ...);
DESCRIPTION
syscall() 执行一个系统调用,根据指定的参数number和所有系统调用的汇编语言接口来确定调用哪个系统调用。
系统调用所使用的符号常量可以在头文件里面找到。
测试实例:
点击(此处)折叠或打开
- #include <unistd.h>
- #include <sys/syscall.h>
- #include <sys/types.h>
- #include <signal.h>
- #include <stdio.h>
- #include <stdlib.h>
- int
- main(int argc, char *argv[])
- {
- pid_t tid;
- tid = syscall(SYS_gettid);
- printf("tid : %d\n",tid);
- tid = syscall(SYS_tgkill, getpid(), tid, SIGHUP);
- printf("tid : %d ...\n",tid);
- }
测试结果:
SYS_*
点击(此处)折叠或打开
- /* Generated at libc build time from kernel syscall list. */
- #ifndef _SYSCALL_H
- # error "Never use directly; include instead."
- #endif
- #include <bits/wordsize.h>
- #define SYS__sysctl __NR__sysctl
- #define SYS_access __NR_access
- #define SYS_acct __NR_acct
- #define SYS_add_key __NR_add_key
- #define SYS_adjtimex __NR_adjtimex
- #define SYS_afs_syscall __NR_afs_syscall
- #define SYS_alarm __NR_alarm
- #define SYS_brk __NR_brk
- #define SYS_capget __NR_capget
- #define SYS_capset __NR_capset
- #define SYS_chdir __NR_chdir
- #define SYS_chmod __NR_chmod
- #define SYS_chown __NR_chown
- #define SYS_chroot __NR_chroot
- #define SYS_clock_getres __NR_clock_getres
- #define SYS_clock_gettime __NR_clock_gettime
- #define SYS_clock_nanosleep __NR_clock_nanosleep
- #define SYS_clock_settime __NR_clock_settime
- #define SYS_clone __NR_clone
- #define SYS_close __NR_close
- #define SYS_creat __NR_creat
- #define SYS_create_module __NR_create_module
- #define SYS_delete_module __NR_delete_module
- #define SYS_dup __NR_dup
- #define SYS_dup2 __NR_dup2
- #define SYS_epoll_create __NR_epoll_create
- #define SYS_epoll_ctl __NR_epoll_ctl
- #define SYS_epoll_wait __NR_epoll_wait
- #define SYS_eventfd __NR_eventfd
- #define SYS_execve __NR_execve
- #define SYS_exit __NR_exit
- #define SYS_exit_group __NR_exit_group
- #define SYS_faccessat __NR_faccessat
- #define SYS_fadvise64 __NR_fadvise64
- #define SYS_fallocate __NR_fallocate
- #define SYS_fchdir __NR_fchdir
- #define SYS_fchmod __NR_fchmod
- #define SYS_fchmodat __NR_fchmodat
- #define SYS_fchown __NR_fchown
- #define SYS_fchownat __NR_fchownat
- #define SYS_fcntl __NR_fcntl
- #define SYS_fdatasync __NR_fdatasync
- #define SYS_fgetxattr __NR_fgetxattr
- #define SYS_flistxattr __NR_flistxattr
- #define SYS_flock __NR_flock
- #define SYS_fork __NR_fork
- #define SYS_fremovexattr __NR_fremovexattr
- #define SYS_fsetxattr __NR_fsetxattr
- #define SYS_fstat __NR_fstat
- #define SYS_fstatfs __NR_fstatfs
- #define SYS_fsync __NR_fsync
- #define SYS_ftruncate __NR_ftruncate
- #define SYS_futex __NR_futex
- #define SYS_futimesat __NR_futimesat
- #define SYS_get_kernel_syms __NR_get_kernel_syms
- #define SYS_get_mempolicy __NR_get_mempolicy
- #define SYS_get_robust_list __NR_get_robust_list
- #define SYS_get_thread_area __NR_get_thread_area
- #define SYS_getcwd __NR_getcwd
- #define SYS_getdents __NR_getdents
- #define SYS_getdents64 __NR_getdents64
- #define SYS_getegid __NR_getegid
- #define SYS_geteuid __NR_geteuid
- #define SYS_getgid __NR_getgid
- #define SYS_getgroups __NR_getgroups
- #define SYS_getitimer __NR_getitimer
- #define SYS_getpgid __NR_getpgid
- #define SYS_getpgrp __NR_getpgrp
- #define SYS_getpid __NR_getpid
- #define SYS_getpmsg __NR_getpmsg
- #define SYS_getppid __NR_getppid
- #define SYS_getpriority __NR_getpriority
- #define SYS_getresgid __NR_getresgid
- #define SYS_getresuid __NR_getresuid
- #define SYS_getrlimit __NR_getrlimit
- #define SYS_getrusage __NR_getrusage
- #define SYS_getsid __NR_getsid
- #define SYS_gettid __NR_gettid
- #define SYS_gettimeofday __NR_gettimeofday
- #define SYS_getuid __NR_getuid
- #define SYS_getxattr __NR_getxattr
- #define SYS_init_module __NR_init_module
- #define SYS_inotify_add_watch __NR_inotify_add_watch
- #define SYS_inotify_init __NR_inotify_init
- #define SYS_inotify_rm_watch __NR_inotify_rm_watch
- #define SYS_io_cancel __NR_io_cancel
- #define SYS_io_destroy __NR_io_destroy
- #define SYS_io_getevents __NR_io_getevents
- #define SYS_io_setup __NR_io_setup
- #define SYS_io_submit __NR_io_submit
- #define SYS_ioctl __NR_ioctl
- #define SYS_ioperm __NR_ioperm
- #define SYS_iopl __NR_iopl
- #define SYS_ioprio_get __NR_ioprio_get
- #define SYS_ioprio_set __NR_ioprio_set
- #define SYS_kexec_load __NR_kexec_load
- #define SYS_keyctl __NR_keyctl
- #define SYS_kill __NR_kill
- #define SYS_lchown __NR_lchown
- #define SYS_lgetxattr __NR_lgetxattr
- #define SYS_link __NR_link
- #define SYS_linkat __NR_linkat
- #define SYS_listxattr __NR_listxattr
- #define SYS_llistxattr __NR_llistxattr
- #define SYS_lookup_dcookie __NR_lookup_dcookie
- #define SYS_lremovexattr __NR_lremovexattr
- #define SYS_lseek __NR_lseek
- #define SYS_lsetxattr __NR_lsetxattr
- #define SYS_lstat __NR_lstat
- #define SYS_madvise __NR_madvise
- #define SYS_mbind __NR_mbind
- #define SYS_migrate_pages __NR_migrate_pages
- #define SYS_mincore __NR_mincore
- #define SYS_mkdir __NR_mkdir
- #define SYS_mkdirat __NR_mkdirat
- #define SYS_mknod __NR_mknod
- #define SYS_mknodat __NR_mknodat
- #define SYS_mlock __NR_mlock
- #define SYS_mlockall __NR_mlockall
- #define SYS_mmap __NR_mmap
- #define SYS_modify_ldt __NR_modify_ldt
- #define SYS_mount __NR_mount
- #define SYS_move_pages __NR_move_pages
- #define SYS_mprotect __NR_mprotect
- #define SYS_mq_getsetattr __NR_mq_getsetattr
- #define SYS_mq_notify __NR_mq_notify
- #define SYS_mq_open __NR_mq_open
- #define SYS_mq_timedreceive __NR_mq_timedreceive
- #define SYS_mq_timedsend __NR_mq_timedsend
- #define SYS_mq_unlink __NR_mq_unlink
- #define SYS_mremap __NR_mremap
- #define SYS_msync __NR_msync
- #define SYS_munlock __NR_munlock
- #define SYS_munlockall __NR_munlockall
- #define SYS_munmap __NR_munmap
- #define SYS_nanosleep __NR_nanosleep
- #define SYS_nfsservctl __NR_nfsservctl
- #define SYS_open __NR_open
- #define SYS_openat __NR_openat
- #define SYS_pause __NR_pause
- #define SYS_personality __NR_personality
- #define SYS_pipe __NR_pipe
- #define SYS_pivot_root __NR_pivot_root
- #define SYS_poll __NR_poll
- #define SYS_ppoll __NR_ppoll
- #define SYS_prctl __NR_prctl
- #define SYS_pread64 __NR_pread64
- #define SYS_pselect6 __NR_pselect6
- #define SYS_ptrace __NR_ptrace
- #define SYS_putpmsg __NR_putpmsg
- #define SYS_pwrite64 __NR_pwrite64
- #define SYS_query_module __NR_query_module
- #define SYS_quotactl __NR_quotactl
- #define SYS_read __NR_read
- #define SYS_readahead __NR_readahead
- #define SYS_readlink __NR_readlink
- #define SYS_readlinkat __NR_readlinkat
- #define SYS_readv __NR_readv
- #define SYS_reboot __NR_reboot
- #define SYS_remap_file_pages __NR_remap_file_pages
- #define SYS_removexattr __NR_removexattr
- #define SYS_rename __NR_rename
- #define SYS_renameat __NR_renameat
- #define SYS_request_key __NR_request_key
- #define SYS_restart_syscall __NR_restart_syscall
- #define SYS_rmdir __NR_rmdir
- #define SYS_rt_sigaction __NR_rt_sigaction
- #define SYS_rt_sigpending __NR_rt_sigpending
- #define SYS_rt_sigprocmask __NR_rt_sigprocmask
- #define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
- #define SYS_rt_sigreturn __NR_rt_sigreturn
- #define SYS_rt_sigsuspend __NR_rt_sigsuspend
- #define SYS_rt_sigtimedwait __NR_rt_sigtimedwait
- #define SYS_sched_get_priority_max __NR_sched_get_priority_max
- #define SYS_sched_get_priority_min __NR_sched_get_priority_min
- #define SYS_sched_getaffinity __NR_sched_getaffinity
- #define SYS_sched_getparam __NR_sched_getparam
- #define SYS_sched_getscheduler __NR_sched_getscheduler
- #define SYS_sched_rr_get_interval __NR_sched_rr_get_interval
- #define SYS_sched_setaffinity __NR_sched_setaffinity
- #define SYS_sched_setparam __NR_sched_setparam
- #define SYS_sched_setscheduler __NR_sched_setscheduler
- #define SYS_sched_yield __NR_sched_yield
- #define SYS_select __NR_select
- #define SYS_sendfile __NR_sendfile
- #define SYS_set_mempolicy __NR_set_mempolicy
- #define SYS_set_robust_list __NR_set_robust_list
- #define SYS_set_thread_area __NR_set_thread_area
- #define SYS_set_tid_address __NR_set_tid_address
- #define SYS_setdomainname __NR_setdomainname
- #define SYS_setfsgid __NR_setfsgid
- #define SYS_setfsuid __NR_setfsuid
- #define SYS_setgid __NR_setgid
- #define SYS_setgroups __NR_setgroups
- #define SYS_sethostname __NR_sethostname
- #define SYS_setitimer __NR_setitimer
- #define SYS_setpgid __NR_setpgid
- #define SYS_setpriority __NR_setpriority
- #define SYS_setregid __NR_setregid
- #define SYS_setresgid __NR_setresgid
- #define SYS_setresuid __NR_setresuid
- #define SYS_setreuid __NR_setreuid
- #define SYS_setrlimit __NR_setrlimit
- #define SYS_setsid __NR_setsid
- #define SYS_settimeofday __NR_settimeofday
- #define SYS_setuid __NR_setuid
- #define SYS_setxattr __NR_setxattr
- #define SYS_sigaltstack __NR_sigaltstack
- #define SYS_splice __NR_splice
- #define SYS_stat __NR_stat
- #define SYS_statfs __NR_statfs
- #define SYS_swapoff __NR_swapoff
- #define SYS_swapon __NR_swapon
- #define SYS_symlink __NR_symlink
- #define SYS_symlinkat __NR_symlinkat
- #define SYS_sync __NR_sync
- #define SYS_sync_file_range __NR_sync_file_range
- #define SYS_sysfs __NR_sysfs
- #define SYS_sysinfo __NR_sysinfo
- #define SYS_syslog __NR_syslog
- #define SYS_tee __NR_tee
- #define SYS_tgkill __NR_tgkill
- #define SYS_time __NR_time
- #define SYS_timer_create __NR_timer_create
- #define SYS_timer_delete __NR_timer_delete
- #define SYS_timer_getoverrun __NR_timer_getoverrun
- #define SYS_timer_gettime __NR_timer_gettime
- #define SYS_timer_settime __NR_timer_settime
- #define SYS_times __NR_times
- #define SYS_tkill __NR_tkill
- #define SYS_truncate __NR_truncate
- #define SYS_umask __NR_umask
- #define SYS_umount2 __NR_umount2
- #define SYS_uname __NR_uname
- #define SYS_unlink __NR_unlink
- #define SYS_unlinkat __NR_unlinkat
- #define SYS_unshare __NR_unshare
- #define SYS_uselib __NR_uselib
- #define SYS_ustat __NR_ustat
- #define SYS_utime __NR_utime
- #define SYS_utimes __NR_utimes
- #define SYS_vfork __NR_vfork
- #define SYS_vhangup __NR_vhangup
- #define SYS_vmsplice __NR_vmsplice
- #define SYS_vserver __NR_vserver
- #define SYS_wait4 __NR_wait4
- #define SYS_waitid __NR_waitid
- #define SYS_write __NR_write
- #define SYS_writev __NR_writev
- #if __WORDSIZE == 64
- #define SYS_accept __NR_accept
- #define SYS_arch_prctl __NR_arch_prctl
- #define SYS_bind __NR_bind
- #define SYS_connect __NR_connect
- #define SYS_epoll_ctl_old __NR_epoll_ctl_old
- #define SYS_epoll_pwait __NR_epoll_pwait
- #define SYS_epoll_wait_old __NR_epoll_wait_old
- #define SYS_getpeername __NR_getpeername
- #define SYS_getsockname __NR_getsockname
- #define SYS_getsockopt __NR_getsockopt
- #define SYS_listen __NR_listen
- #define SYS_msgctl __NR_msgctl
- #define SYS_msgget __NR_msgget
- #define SYS_msgrcv __NR_msgrcv
- #define SYS_msgsnd __NR_msgsnd
- #define SYS_newfstatat __NR_newfstatat
- #define SYS_recvfrom __NR_recvfrom
- #define SYS_recvmsg __NR_recvmsg
- #define SYS_security __NR_security
- #define SYS_semctl __NR_semctl
- #define SYS_semget __NR_semget
- #define SYS_semop __NR_semop
- #define SYS_semtimedop __NR_semtimedop
- #define SYS_sendmsg __NR_sendmsg
- #define SYS_sendto __NR_sendto
- #define SYS_setsockopt __NR_setsockopt
- #define SYS_shmat __NR_shmat
- #define SYS_shmctl __NR_shmctl
- #define SYS_shmdt __NR_shmdt
- #define SYS_shmget __NR_shmget
- #define SYS_shutdown __NR_shutdown
- #define SYS_signalfd __NR_signalfd
- #define SYS_socket __NR_socket
- #define SYS_socketpair __NR_socketpair
- #define SYS_timerfd_create __NR_timerfd_create
- #define SYS_tuxcall __NR_tuxcall
- #define SYS_utimensat __NR_utimensat
- #else
- #define SYS__llseek __NR__llseek
- #define SYS__newselect __NR__newselect
- #define SYS_bdflush __NR_bdflush
- #define SYS_break __NR_break
- #define SYS_chown32 __NR_chown32
- #define SYS_fadvise64_64 __NR_fadvise64_64
- #define SYS_fchown32 __NR_fchown32
- #define SYS_fcntl64 __NR_fcntl64
- #define SYS_fstat64 __NR_fstat64
- #define SYS_fstatat64 __NR_fstatat64
- #define SYS_fstatfs64 __NR_fstatfs64
- #define SYS_ftime __NR_ftime
- #define SYS_ftruncate64 __NR_ftruncate64
- #define SYS_getcpu __NR_getcpu
- #define SYS_getegid32 __NR_getegid32
- #define SYS_geteuid32 __NR_geteuid32
- #define SYS_getgid32 __NR_getgid32
- #define SYS_getgroups32 __NR_getgroups32
- #define SYS_getresgid32 __NR_getresgid32
- #define SYS_getresuid32 __NR_getresuid32
- #define SYS_getuid32 __NR_getuid32
- #define SYS_gtty __NR_gtty
- #define SYS_idle __NR_idle
- #define SYS_ipc __NR_ipc
- #define SYS_lchown32 __NR_lchown32
- #define SYS_lock __NR_lock
- #define SYS_lstat64 __NR_lstat64
- #define SYS_madvise1 __NR_madvise1
- #define SYS_mmap2 __NR_mmap2
- #define SYS_mpx __NR_mpx
- #define SYS_nice __NR_nice
- #define SYS_oldfstat __NR_oldfstat
- #define SYS_oldlstat __NR_oldlstat
- #define SYS_oldolduname __NR_oldolduname
- #define SYS_oldstat __NR_oldstat
- #define SYS_olduname __NR_olduname
- #define SYS_prof __NR_prof
- #define SYS_profil __NR_profil
- #define SYS_readdir __NR_readdir
- #define SYS_sendfile64 __NR_sendfile64
- #define SYS_setfsgid32 __NR_setfsgid32
- #define SYS_setfsuid32 __NR_setfsuid32
- #define SYS_setgid32 __NR_setgid32
- #define SYS_setgroups32 __NR_setgroups32
- #define SYS_setregid32 __NR_setregid32
- #define SYS_setresgid32 __NR_setresgid32
- #define SYS_setresuid32 __NR_setresuid32
- #define SYS_setreuid32 __NR_setreuid32
- #define SYS_setuid32 __NR_setuid32
- #define SYS_sgetmask __NR_sgetmask
- #define SYS_sigaction __NR_sigaction
- #define SYS_signal __NR_signal
- #define SYS_sigpending __NR_sigpending
- #define SYS_sigprocmask __NR_sigprocmask
- #define SYS_sigreturn __NR_sigreturn
- #define SYS_sigsuspend __NR_sigsuspend
- #define SYS_socketcall __NR_socketcall
- #define SYS_ssetmask __NR_ssetmask
- #define SYS_stat64 __NR_stat64
- #define SYS_statfs64 __NR_statfs64
- #define SYS_stime __NR_stime
- #define SYS_stty __NR_stty
- #define SYS_truncate64 __NR_truncate64
- #define SYS_ugetrlimit __NR_ugetrlimit
- #define SYS_ulimit __NR_ulimit
- #define SYS_umount __NR_umount
- #define SYS_vm86 __NR_vm86
- #define SYS_vm86old __NR_vm86old
- #define SYS_waitpid __NR_waitpid
- #endif
linux下syscall函数,SYS_gettid,SYS_tgkill的更多相关文章
-
linux下syscall函数 间接系统调用
NAME syscall - 间接系统调用 SYNOPSIS #define _GNU_SOURCE #include ...
-
对于linux下system()函数的深度理解(整理)
原谅: http://blog.sina.com.cn/s/blog_8043547601017qk0.html 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同 ...
-
Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
-
转:对于linux下system()函数的深度理解(整理)
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...
-
【C/C++】Linux下system()函数引发的错误
http://my.oschina.net/renhc/blog/54582 [C/C++]Linux下system()函数引发的错误 恋恋美食 恋恋美食 发布时间: 2012/04/21 11:3 ...
-
[转帖]Linux下fork函数及pthread函数的总结
Linux下fork函数及pthread函数的总结 https://blog.csdn.net/wangdd_199326/article/details/76180514 fork Linux多进程 ...
-
(笔记)Linux下system()函数的深度理解(整理)
注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数 ...
-
linux下sprintf_s函数的替代
error code: ]; sprintf_s(buf, , "predicted position:(%3d, %3d)", predict_pt.x, predict_pt. ...
-
[Android Memory] Linux下malloc函数和OOM Killer
http://www.linuxidc.com/Linux/2010-09/28364.htm Linux下malloc函数主要用来在用户空间从heap申请内存,申请成功返回指向所分配内存的指针,申请 ...
随机推荐
-
Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造 成Race Condition,从而导致死循环.这个事情我4 ...
-
achieve aop through xml
The main way to achive AOP is deploying a xml file. Now a xml file is presented to be a explanation ...
-
解决flask的502错误:upstream prematurely closed connection while reading response header from upstream
我在使用 tiangolo/uwsgi-nginx-flask 部署flask应用的时候,经常运行一会儿就出现502错误,重新启动容器后,就恢复. 且经常会出现数据更新后,刷新结果不一致. docke ...
-
docker学习笔记一
知识点: 1)docker简介 2)docker安装,仓库配置 3)docker仓库镜像拉取,导出,导入,删除 4)docker容器操作,容器的创建,删除,运行,停止,日志查看等. 5) docke ...
-
洛谷P2805 植物大战僵尸
题意:给你一张图,每个节点保护若干节点. 当一个节点不被保护的时候,你就可以gay掉它. gay每个节点都有收益(可能为负),求最大总收益. 解:首先发现是一个最大权闭合子图. 把保护关系变成被保护, ...
-
静态属性property
静态属性property(是通过对象去使用) property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 1 . 通过@property修饰过的函数属性,调用的时候无需在加() cla ...
-
[20171120]11g select for update skip locked.txt
[20171120]11g select for update skip locked.txt --//11G在select for update遇到阻塞时可以通过skipped locked跳过阻塞 ...
-
牛客OI周赛7-普及组
https://ac.nowcoder.com/acm/contest/372#question A.救救猫咪 #include <bits/stdc++.h> using namespa ...
-
应用SharedPreference保存程序的配置信息
SharedPreference: 1.用来保存应用程序的配置信息的XML文件,内部的数据形式为键值对 2.一般存在于/data/data/<包名>shared_prefs目录下 3.该对 ...
-
[JSOI 2007]字符加密Cipher
Description 题库链接 给你一个长度为 \(n\) 的字符串,首尾相接依次断开每个断点可以得到 \(n\) 个长度为 \(n\) 的字符串,将其排序按序输出每个字符串的最后一个字母. \(1 ...