sys_dup()

在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linux系统最著名的一个特性:输入/输出重定向
    sys_dup()的主要工作就是用来“复制”一个打开的文件号,使两个文件号都指向同一个文件。既然说简单,我们就首先来看一下它的代码(定义在fs/fcntl.c中):
187  asmlinkage long sys_dup(unsigned int fildes)
188  {
189      int ret = -EBADF;
190      struct file * file = fget(fildes);
191  
192      if (file)
193          ret = dupfd(file, 0);
194      return ret;
195  }

而sys_dup()的主体是dupfd()(定义在同一个文件中):
116  static int dupfd(struct file *file, int start)
117  {
118      struct files_struct * files = current->files;
119      int ret;
120  
121      ret = locate_fd(files, file, start);
122      if (ret < 0) 
123          goto out_putf;
124      allocate_fd(files, file, ret);
125      return ret;
126  
127  out_putf:
128      write_unlock(&files->file_lock);
129      fput(file);
130      return ret;
131  }

    而这么一个简单的系统调用是如何完成重定向这个艰巨的任务的呢?我们不妨先看个例子。
    当我们在shell下输入如下命令:“echo hello!”,这条命令要求shell进程执行一个可执行文件echo,参数为“hello!”。当shell接收到命令之后,先找到bin/echo,然后fork()出一个子进程让他执行bin/echo,并将参数传递给它,而这个进程从shell继承了三个标准文件,即标准输入(stdin),标准输出(stdout)和标准出错信息(stderr),他们三个的文件号分别为0、1、2。而至于echo进程的工作很简单,就是将参数“hello!”写道标准输出文件中去,通常都是我们的显示器上。但是如果我们将命令改成“echo hello! > foo”,则在执行时输出将会被重定向到磁盘文件foo中。我们假定在此之前该shell进程只有三个标准文件打开,文件号分别为0、1、2,以上命令行将按如下序列执行:
    (1) 打开或创建磁盘文件foo,如果foo中原来有内容,则清除原来内容,其文件号为3。
    (2) 通过dup()复制文件stdout,即将文件号1出的file结构指针复制到文件号4处,目的是将stdout的file指针暂时保存一下
    (3) 关闭stdout,即1号文件,但是由于4号文件对stdout也同时有个引用,所以stdout文件并未真正关闭,只是腾出1号文件号位置。
    (4) 通过dup(),复制3号文件(即磁盘文件foo),由于1号文件关闭,其位置空缺,故3号文件被复制到1号,即进程中原来指向stdout的指针指向了foo。
    (5) 通过系统调用fork()和exec()创建子进程并执行echo,子进程在执行echo前夕关闭3号和4号文件,只留下0、1、2三个文件,请注意,这时的1号文件已经不是stdout而是磁盘文件foo了。当echo想向stdout文件写入“hello!”时自然就写入到了foo中。
    (6) 回到shell后,关闭指向foo的1号与3号文件文件,再用dup()和close()将2号恢复至stdout,这样shell就恢复了0、1、2三个标准输入/输出文件。

    由此可见,当echo程序(或其他)在运行的时候并不知道stdout(对于stdin和stderr同样)指向什么,进程与实际输出文件或设备的结合是在运行时由其父进程“包办”的。这样就简化了子进程的程序设计,因为在设计时只要跟三个逻辑上存在的文件打交道就可以了。可能有人会觉得这很像面向对象中的多态和重载,没有什么新奇之处,但是如果你活在30甚至40年前,可能你会改变你的看法。 

#include 
#include 
#include 
#include

int main(void)
{
   #define STDOUT 1   //标准输出文件描述符 号

   int nul, oldstdout;
   char msg[] = "This is a test";

   /* create a file */

//打开一个文件,操作者具有读写权限 如果文件不存在就创建
   nul = open("DUMMY.FIL", O_CREAT | O_RDWR,
      S_IREAD | S_IWRITE);

   /* create a duplicate handle for standard
      output */

//创建STDOUT的描述符备份
   oldstdout = dup(STDOUT);
   /*
      redirect standard output to DUMMY.FIL
      by duplicating the file handle onto the
      file handle for standard output.
   */

//重定向nul到STDOUT
   dup2(nul, STDOUT);

   /* close the handle for DUMMY.FIL */

//重定向之后要关闭nul
   close(nul);

   /* will be redirected into DUMMY.FIL */

//写入数据
   write(STDOUT, msg, strlen(msg));

   /* restore original standard output
      handle */

//还原
   dup2(oldstdout, STDOUT);

   /* close duplicate handle for STDOUT */
   close(oldstdout);

   return 0;
}
 

//结果就是msg写到了文件中而不是STDOUT 

转自:http://blog.chinaunix.net/uid-10221131-id-205382.html

第五步中要求修改syscall.c,其中首先要 // 添加系统调用名称映射 static char* syscall_names[] = { [SYS_fork] "fork", [SYS_exec] "exec", ... // 其他系统调用名称 }; 这一步我没看懂具体操作,请给解释清楚,现在syscall.c的内容如下: #include "types.h" #include "param.h" #include "memlayout.h" #include "riscv.h" #include "spinlock.h" #include "proc.h" #include "syscall.h" #include "defs.h" // Fetch the uint64 at addr from the current process. int fetchaddr(uint64 addr, uint64 *ip) { struct proc *p = myproc(); if(addr >= p->sz || addr+sizeof(uint64) > p->sz) // both tests needed, in case of overflow return -1; if(copyin(p->pagetable, (char *)ip, addr, sizeof(*ip)) != 0) return -1; return 0; } // Fetch the nul-terminated string at addr from the current process. // Returns length of string, not including nul, or -1 for error. int fetchstr(uint64 addr, char *buf, int max) { struct proc *p = myproc(); if(copyinstr(p->pagetable, buf, addr, max) < 0) return -1; return strlen(buf); } static uint64 argraw(int n) { struct proc *p = myproc(); switch (n) { case 0: return p->trapframe->a0; case 1: return p->trapframe->a1; case 2: return p->trapframe->a2; case 3: return p->trapframe->a3; case 4: return p->trapframe->a4; case 5: return p->trapframe->a5; } panic("argraw"); return -1; } // Fetch the nth 32-bit system call argument. void argint(int n, int *ip) { *ip = argraw(n); } // Retrieve an argument as a pointer. // Doesn't check for legality, since // copyin/copyout will do that. void argaddr(int n, uint64 *ip) { *ip = argraw(n); } // Fetch the nth word-sized system call argument as a null-terminated string. // Copies into buf, at most max. // Returns string length if OK (including nul), -1 if error. int argstr(int n, char *buf, int max) { uint64 addr; argaddr(n, &addr); return fetchstr(addr, buf, max); } // Prototypes for the functions that handle system calls. extern uint64 sys_fork(void); extern uint64 sys_exit(void); extern uint64 sys_wait(void); extern uint64 sys_pipe(void); extern uint64 sys_read(void); extern uint64 sys_kill(void); extern uint64 sys_exec(void); extern uint64 sys_fstat(void); extern uint64 sys_chdir(void); extern uint64 sys_dup(void); extern uint64 sys_getpid(void); extern uint64 sys_sbrk(void); extern uint64 sys_sleep(void); extern uint64 sys_uptime(void); extern uint64 sys_open(void); extern uint64 sys_write(void); extern uint64 sys_mknod(void); extern uint64 sys_unlink(void); extern uint64 sys_link(void); extern uint64 sys_mkdir(void); extern uint64 sys_close(void); // An array mapping syscall numbers from syscall.h // to the function that handles the system call. static uint64 (*syscalls[])(void) = { [SYS_fork] sys_fork, [SYS_exit] sys_exit, [SYS_wait] sys_wait, [SYS_pipe] sys_pipe, [SYS_read] sys_read, [SYS_kill] sys_kill, [SYS_exec] sys_exec, [SYS_fstat] sys_fstat, [SYS_chdir] sys_chdir, [SYS_dup] sys_dup, [SYS_getpid] sys_getpid, [SYS_sbrk] sys_sbrk, [SYS_sleep] sys_sleep, [SYS_uptime] sys_uptime, [SYS_open] sys_open, [SYS_write] sys_write, [SYS_mknod] sys_mknod, [SYS_unlink] sys_unlink, [SYS_link] sys_link, [SYS_mkdir] sys_mkdir, [SYS_close] sys_close, }; void syscall(void) { int num; struct proc *p = myproc(); num = p->trapframe->a7; if(num > 0 && num < NELEM(syscalls) && syscalls[num]) { // Use num to lookup the system call function for num, call it, // and store its return value in p->trapframe->a0 p->trapframe->a0 = syscalls[num](); } else { printf("%d %s: unknown sys call %d\n", p->pid, p->name, num); p->trapframe->a0 = -1; } }
最新发布
11-22
syscalls:sys_enter_getresuid [Tracepoint event] syscalls:sys_enter_getrlimit [Tracepoint event] syscalls:sys_enter_getrusage [Tracepoint event] syscalls:sys_enter_getsid [Tracepoint event] syscalls:sys_enter_getsockname [Tracepoint event] syscalls:sys_enter_getsockopt [Tracepoint event] syscalls:sys_enter_gettid [Tracepoint event] syscalls:sys_enter_gettimeofday [Tracepoint event] syscalls:sys_enter_getuid [Tracepoint event] syscalls:sys_enter_getxattr [Tracepoint event] syscalls:sys_enter_init_module [Tracepoint event] syscalls:sys_enter_inotify_add_watch [Tracepoint event] syscalls:sys_enter_inotify_init [Tracepoint event] syscalls:sys_enter_inotify_init1 [Tracepoint event] syscalls:sys_enter_inotify_rm_watch [Tracepoint event] syscalls:sys_enter_io_cancel [Tracepoint event] syscalls:sys_enter_io_destroy [Tracepoint event] syscalls:sys_enter_io_getevents [Tracepoint event] syscalls:sys_enter_io_pgetevents [Tracepoint event] syscalls:sys_enter_io_setup [Tracepoint event] syscalls:sys_enter_io_submit [Tracepoint event] syscalls:sys_enter_ioctl [Tracepoint event] syscalls:sys_enter_ioperm [Tracepoint event] syscalls:sys_enter_iopl [Tracepoint event] syscalls:sys_enter_ioprio_get [Tracepoint event] syscalls:sys_enter_ioprio_set [Tracepoint event] syscalls:sys_enter_kcmp [Tracepoint event] syscalls:sys_enter_kexec_file_load [Tracepoint event] syscalls:sys_enter_kexec_load [Tracepoint event] syscalls:sys_enter_keyctl [Tracepoint event] syscalls:sys_enter_kill [Tracepoint event] syscalls:sys_enter_lchown [Tracepoint event] syscalls:sys_enter_lgetxattr [Tracepoint event] syscalls:sys_enter_link [Tracepoint event] syscalls:sys_enter_linkat [Tracepoint event] syscalls:sys_enter_listen [Tracepoint event] syscalls:sys_enter_listxattr [Tracepoint event] syscalls:sys_enter_llistxattr [Tracepoint event] syscalls:sys_enter_lookup_dcookie [Tracepoint event] syscalls:sys_enter_lremovexattr [Tracepoint event] syscalls:sys_enter_lseek [Tracepoint event] syscalls:sys_enter_lsetxattr [Tracepoint event] syscalls:sys_enter_madvise [Tracepoint event] syscalls:sys_enter_mbind [Tracepoint event] syscalls:sys_enter_membarrier [Tracepoint event] syscalls:sys_enter_memfd_create [Tracepoint event] syscalls:sys_enter_migrate_pages [Tracepoint event] syscalls:sys_enter_mincore [Tracepoint event] syscalls:sys_enter_mkdir [Tracepoint event] syscalls:sys_enter_mkdirat [Tracepoint event] syscalls:sys_enter_mknod [Tracepoint event] syscalls:sys_enter_mknodat [Tracepoint event] syscalls:sys_enter_mlock [Tracepoint event] syscalls:sys_enter_mlock2 [Tracepoint event] syscalls:sys_enter_mlockall [Tracepoint event] syscalls:sys_enter_mmap [Tracepoint event] syscalls:sys_enter_modify_ldt [Tracepoint event] syscalls:sys_enter_mount [Tracepoint event] syscalls:sys_enter_move_pages [Tracepoint event] syscalls:sys_enter_mprotect [Tracepoint event] syscalls:sys_enter_mq_getsetattr [Tracepoint event] syscalls:sys_enter_mq_notify [Tracepoint event] syscalls:sys_enter_mq_open [Tracepoint event] syscalls:sys_enter_mq_timedreceive [Tracepoint event] syscalls:sys_enter_mq_timedsend [Tracepoint event] syscalls:sys_enter_mq_unlink [Tracepoint event] syscalls:sys_enter_mremap [Tracepoint event] syscalls:sys_enter_msgctl [Tracepoint event] syscalls:sys_enter_msgget [Tracepoint event] syscalls:sys_enter_msgrcv [Tracepoint event] syscalls:sys_enter_msgsnd [Tracepoint event] syscalls:sys_enter_msync [Tracepoint event] syscalls:sys_enter_munlock [Tracepoint event] syscalls:sys_enter_munlockall [Tracepoint event] syscalls:sys_enter_munmap [Tracepoint event] syscalls:sys_enter_name_to_handle_at [Tracepoint event] syscalls:sys_enter_nanosleep [Tracepoint event] syscalls:sys_enter_newfstat [Tracepoint event] syscalls:sys_enter_newfstatat [Tracepoint event] syscalls:sys_enter_newlstat [Tracepoint event] syscalls:sys_enter_newstat [Tracepoint event] syscalls:sys_enter_newuname [Tracepoint event] syscalls:sys_enter_open [Tracepoint event] syscalls:sys_enter_open_by_handle_at [Tracepoint event] syscalls:sys_enter_openat [Tracepoint event] syscalls:sys_enter_pause [Tracepoint event] syscalls:sys_enter_perf_event_open [Tracepoint event] syscalls:sys_enter_personality [Tracepoint event] syscalls:sys_enter_pipe [Tracepoint event] syscalls:sys_enter_pipe2 [Tracepoint event] syscalls:sys_enter_pivot_root [Tracepoint event] syscalls:sys_enter_pkey_alloc [Tracepoint event] syscalls:sys_enter_pkey_free [Tracepoint event] syscalls:sys_enter_pkey_mprotect [Tracepoint event] syscalls:sys_enter_poll [Tracepoint event] syscalls:sys_enter_ppoll [Tracepoint event] syscalls:sys_enter_prctl [Tracepoint event] syscalls:sys_enter_pread64 [Tracepoint event] syscalls:sys_enter_preadv [Tracepoint event] syscalls:sys_enter_preadv2 [Tracepoint event] syscalls:sys_enter_prlimit64 [Tracepoint event] syscalls:sys_enter_process_vm_readv [Tracepoint event] syscalls:sys_enter_process_vm_writev [Tracepoint event] syscalls:sys_enter_pselect6 [Tracepoint event] syscalls:sys_enter_ptrace [Tracepoint event] syscalls:sys_enter_pwrite64 [Tracepoint event] syscalls:sys_enter_pwritev [Tracepoint event] syscalls:sys_enter_pwritev2 [Tracepoint event] syscalls:sys_enter_quotactl [Tracepoint event] syscalls:sys_enter_read [Tracepoint event] syscalls:sys_enter_readahead [Tracepoint event] syscalls:sys_enter_readlink [Tracepoint event] syscalls:sys_enter_readlinkat [Tracepoint event] syscalls:sys_enter_readv [Tracepoint event] syscalls:sys_enter_reboot [Tracepoint event] syscalls:sys_enter_recvfrom [Tracepoint event] syscalls:sys_enter_recvmmsg [Tracepoint event] syscalls:sys_enter_recvmsg [Tracepoint event] syscalls:sys_enter_remap_file_pages [Tracepoint event] syscalls:sys_enter_removexattr [Tracepoint event] syscalls:sys_enter_rename [Tracepoint event] syscalls:sys_enter_renameat [Tracepoint event] syscalls:sys_enter_renameat2 [Tracepoint event] syscalls:sys_enter_request_key [Tracepoint event] syscalls:sys_enter_restart_syscall [Tracepoint event] syscalls:sys_enter_rmdir [Tracepoint event] syscalls:sys_enter_rseq [Tracepoint event] syscalls:sys_enter_rt_sigaction [Tracepoint event] syscalls:sys_enter_rt_sigpending [Tracepoint event] syscalls:sys_enter_rt_sigprocmask [Tracepoint event] syscalls:sys_enter_rt_sigqueueinfo [Tracepoint event] syscalls:sys_enter_rt_sigreturn [Tracepoint event] syscalls:sys_enter_rt_sigsuspend [Tracepoint event] syscalls:sys_enter_rt_sigtimedwait [Tracepoint event] syscalls:sys_enter_rt_tgsigqueueinfo [Tracepoint event] syscalls:sys_enter_sched_get_priority_max [Tracepoint event] syscalls:sys_enter_sched_get_priority_min [Tracepoint event] syscalls:sys_enter_sched_getaffinity [Tracepoint event] syscalls:sys_enter_sched_getattr [Tracepoint event] syscalls:sys_enter_sched_getparam [Tracepoint event] syscalls:sys_enter_sched_getscheduler [Tracepoint event] syscalls:sys_enter_sched_rr_get_interval [Tracepoint event] syscalls:sys_enter_sched_setaffinity [Tracepoint event] syscalls:sys_enter_sched_setattr [Tracepoint event] syscalls:sys_enter_sched_setparam [Tracepoint event] syscalls:sys_enter_sched_setscheduler [Tracepoint event] syscalls:sys_enter_sched_yield [Tracepoint event] syscalls:sys_enter_seccomp [Tracepoint event] syscalls:sys_enter_select [Tracepoint event] syscalls:sys_enter_semctl [Tracepoint event] syscalls:sys_enter_semget [Tracepoint event] syscalls:sys_enter_semop [Tracepoint event] syscalls:sys_enter_semtimedop [Tracepoint event] syscalls:sys_enter_sendfile64 [Tracepoint event] syscalls:sys_enter_sendmmsg [Tracepoint event] syscalls:sys_enter_sendmsg [Tracepoint event] syscalls:sys_enter_sendto [Tracepoint event] syscalls:sys_enter_set_mempolicy [Tracepoint event] syscalls:sys_enter_set_robust_list [Tracepoint event] syscalls:sys_enter_set_tid_address [Tracepoint event] syscalls:sys_enter_setdomainname [Tracepoint event] syscalls:sys_enter_setfsgid [Tracepoint event] syscalls:sys_enter_setfsuid [Tracepoint event] syscalls:sys_enter_setgid [Tracepoint event] syscalls:sys_enter_setgroups [Tracepoint event] syscalls:sys_enter_sethostname [Tracepoint event] syscalls:sys_enter_setitimer [Tracepoint event] syscalls:sys_enter_setns [Tracepoint event] syscalls:sys_enter_setpgid [Tracepoint event] syscalls:sys_enter_setpriority [Tracepoint event] syscalls:sys_enter_setregid [Tracepoint event] syscalls:sys_enter_setresgid [Tracepoint event] syscalls:sys_enter_setresuid [Tracepoint event] syscalls:sys_enter_setreuid [Tracepoint event] syscalls:sys_enter_setrlimit [Tracepoint event] syscalls:sys_enter_setsid [Tracepoint event] syscalls:sys_enter_setsockopt [Tracepoint event] syscalls:sys_enter_settimeofday [Tracepoint event] syscalls:sys_enter_setuid [Tracepoint event] syscalls:sys_enter_setxattr [Tracepoint event] syscalls:sys_enter_shmat [Tracepoint event] syscalls:sys_enter_shmctl [Tracepoint event] syscalls:sys_enter_shmdt [Tracepoint event] syscalls:sys_enter_shmget [Tracepoint event] syscalls:sys_enter_shutdown [Tracepoint event] syscalls:sys_enter_sigaltstack [Tracepoint event] syscalls:sys_enter_signalfd [Tracepoint event] syscalls:sys_enter_signalfd4 [Tracepoint event] syscalls:sys_enter_socket [Tracepoint event] syscalls:sys_enter_socketpair [Tracepoint event] syscalls:sys_enter_splice [Tracepoint event] syscalls:sys_enter_statfs [Tracepoint event] syscalls:sys_enter_statx [Tracepoint event] syscalls:sys_enter_swapoff [Tracepoint event] syscalls:sys_enter_swapon [Tracepoint event] syscalls:sys_enter_symlink [Tracepoint event] syscalls:sys_enter_symlinkat [Tracepoint event] syscalls:sys_enter_sync [Tracepoint event] syscalls:sys_enter_sync_file_range [Tracepoint event] syscalls:sys_enter_syncfs [Tracepoint event] syscalls:sys_enter_sysctl [Tracepoint event] syscalls:sys_enter_sysfs [Tracepoint event] syscalls:sys_enter_sysinfo [Tracepoint event] syscalls:sys_enter_syslog [Tracepoint event] syscalls:sys_enter_tee [Tracepoint event] syscalls:sys_enter_tgkill [Tracepoint event] syscalls:sys_enter_time [Tracepoint event] syscalls:sys_enter_timer_create [Tracepoint event] syscalls:sys_enter_timer_delete [Tracepoint event] syscalls:sys_enter_timer_getoverrun [Tracepoint event] syscalls:sys_enter_timer_gettime [Tracepoint event] syscalls:sys_enter_timer_settime [Tracepoint event] syscalls:sys_enter_timerfd_create [Tracepoint event] syscalls:sys_enter_timerfd_gettime [Tracepoint event] syscalls:sys_enter_timerfd_settime [Tracepoint event] syscalls:sys_enter_times [Tracepoint event] syscalls:sys_enter_tkill [Tracepoint event] syscalls:sys_enter_truncate [Tracepoint event] syscalls:sys_enter_umask [Tracepoint event] syscalls:sys_enter_umount [Tracepoint event] syscalls:sys_enter_unlink [Tracepoint event] syscalls:sys_enter_unlinkat [Tracepoint event] syscalls:sys_enter_unshare [Tracepoint event] syscalls:sys_enter_userfaultfd [Tracepoint event] syscalls:sys_enter_ustat [Tracepoint event] syscalls:sys_enter_utime [Tracepoint event] syscalls:sys_enter_utimensat [Tracepoint event] syscalls:sys_enter_utimes [Tracepoint event] syscalls:sys_enter_vfork [Tracepoint event] syscalls:sys_enter_vhangup [Tracepoint event] syscalls:sys_enter_vmsplice [Tracepoint event] syscalls:sys_enter_wait4 [Tracepoint event] syscalls:sys_enter_waitid [Tracepoint event] syscalls:sys_enter_write [Tracepoint event] syscalls:sys_enter_writev [Tracepoint event] syscalls:sys_exit_accept [Tracepoint event] syscalls:sys_exit_accept4 [Tracepoint event] syscalls:sys_exit_access [Tracepoint event] syscalls:sys_exit_acct [Tracepoint event] syscalls:sys_exit_add_key [Tracepoint event] syscalls:sys_exit_adjtimex [Tracepoint event] syscalls:sys_exit_alarm [Tracepoint event] syscalls:sys_exit_arch_prctl [Tracepoint event] syscalls:sys_exit_bind [Tracepoint event] syscalls:sys_exit_bpf [Tracepoint event] syscalls:sys_exit_brk [Tracepoint event] syscalls:sys_exit_capget [Tracepoint event] syscalls:sys_exit_capset [Tracepoint event] syscalls:sys_exit_chdir [Tracepoint event] syscalls:sys_exit_chmod [Tracepoint event] syscalls:sys_exit_chown [Tracepoint event] syscalls:sys_exit_chroot [Tracepoint event] syscalls:sys_exit_clock_adjtime [Tracepoint event] syscalls:sys_exit_clock_getres [Tracepoint event] syscalls:sys_exit_clock_gettime [Tracepoint event] syscalls:sys_exit_clock_nanosleep [Tracepoint event] syscalls:sys_exit_clock_settime [Tracepoint event] syscalls:sys_exit_clone [Tracepoint event] syscalls:sys_exit_close [Tracepoint event] syscalls:sys_exit_connect [Tracepoint event] syscalls:sys_exit_copy_file_range [Tracepoint event] syscalls:sys_exit_creat [Tracepoint event] syscalls:sys_exit_delete_module [Tracepoint event] syscalls:sys_exit_dup [Tracepoint event] syscalls:sys_exit_dup2 [Tracepoint event] syscalls:sys_exit_dup3 [Tracepoint event] syscalls:sys_exit_epoll_create [Tracepoint event] syscalls:sys_exit_epoll_create1 [Tracepoint event] syscalls:sys_exit_epoll_ctl [Tracepoint event] syscalls:sys_exit_epoll_pwait [Tracepoint event] syscalls:sys_exit_epoll_wait [Tracepoint event] syscalls:sys_exit_eventfd [Tracepoint event] syscalls:sys_exit_eventfd2 [Tracepoint event] syscalls:sys_exit_execve [Tracepoint event] syscalls:sys_exit_execveat [Tracepoint event] syscalls:sys_exit_exit [Tracepoint event] syscalls:sys_exit_exit_group [Tracepoint event] syscalls:sys_exit_faccessat [Tracepoint event] syscalls:sys_exit_fadvise64 [Tracepoint event] syscalls:sys_exit_fallocate [Tracepoint event] syscalls:sys_exit_fanotify_init [Tracepoint event] syscalls:sys_exit_fanotify_mark [Tracepoint event] syscalls:sys_exit_fchdir [Tracepoint event] syscalls:sys_exit_fchmod [Tracepoint event] syscalls:sys_exit_fchmodat [Tracepoint event] syscalls:sys_exit_fchown [Tracepoint event] syscalls:sys_exit_fchownat [Tracepoint event] syscalls:sys_exit_fcntl [Tracepoint event] syscalls:sys_exit_fdatasync [Tracepoint event] syscalls:sys_exit_fgetxattr [Tracepoint event] syscalls:sys_exit_finit_module [Tracepoint event] syscalls:sys_exit_flistxattr [Tracepoint event] syscalls:sys_exit_flock [Tracepoint event] syscalls:sys_exit_fork [Tracepoint event] syscalls:sys_exit_fremovexattr [Tracepoint event] syscalls:sys_exit_fsetxattr [Tracepoint event] syscalls:sys_exit_fstatfs [Tracepoint event] syscalls:sys_exit_fsync [Tracepoint event] syscalls:sys_exit_ftruncate [Tracepoint event] syscalls:sys_exit_futex [Tracepoint event] syscalls:sys_exit_futimesat [Tracepoint event] syscalls:sys_exit_get_mempolicy [Tracepoint event] syscalls:sys_exit_get_robust_list [Tracepoint event] syscalls:sys_exit_getcpu [Tracepoint event] syscalls:sys_exit_getcwd [Tracepoint event] syscalls:sys_exit_getdents [Tracepoint event] syscalls:sys_exit_getdents64 [Tracepoint event] syscalls:sys_exit_getegid [Tracepoint event] syscalls:sys_exit_geteuid [Tracepoint event] syscalls:sys_exit_getgid [Tracepoint event] syscalls:sys_exit_getgroups [Tracepoint event] syscalls:sys_exit_getitimer [Tracepoint event] syscalls:sys_exit_getpeername [Tracepoint event] syscalls:sys_exit_getpgid [Tracepoint event] syscalls:sys_exit_getpgrp [Tracepoint event] syscalls:sys_exit_getpid [Tracepoint event] syscalls:sys_exit_getppid [Tracepoint event] syscalls:sys_exit_getpriority [Tracepoint event] syscalls:sys_exit_getrandom [Tracepoint event] syscalls:sys_exit_getresgid [Tracepoint event] syscalls:sys_exit_getresuid [Tracepoint event] syscalls:sys_exit_getrlimit [Tracepoint event] syscalls:sys_exit_getrusage [Tracepoint event] syscalls:sys_exit_getsid [Tracepoint event] syscalls:sys_exit_getsockname [Tracepoint event] syscalls:sys_exit_getsockopt [Tracepoint event] syscalls:sys_exit_gettid [Tracepoint event] syscalls:sys_exit_gettimeofday [Tracepoint event] syscalls:sys_exit_getuid [Tracepoint event] syscalls:sys_exit_getxattr [Tracepoint event] syscalls:sys_exit_init_module [Tracepoint event] syscalls:sys_exit_inotify_add_watch [Tracepoint event] syscalls:sys_exit_inotify_init [Tracepoint event] syscalls:sys_exit_inotify_init1 [Tracepoint event] syscalls:sys_exit_inotify_rm_watch [Tracepoint event] syscalls:sys_exit_io_cancel [Tracepoint event] syscalls:sys_exit_io_destroy [Tracepoint event] syscalls:sys_exit_io_getevents [Tracepoint event] syscalls:sys_exit_io_pgetevents [Tracepoint event] syscalls:sys_exit_io_setup [Tracepoint event] syscalls:sys_exit_io_submit [Tracepoint event] syscalls:sys_exit_ioctl [Tracepoint event] syscalls:sys_exit_ioperm [Tracepoint event] syscalls:sys_exit_iopl [Tracepoint event] syscalls:sys_exit_ioprio_get [Tracepoint event] syscalls:sys_exit_ioprio_set [Tracepoint event] syscalls:sys_exit_kcmp [Tracepoint event] syscalls:sys_exit_kexec_file_load [Tracepoint event] syscalls:sys_exit_kexec_load [Tracepoint event] syscalls:sys_exit_keyctl [Tracepoint event] syscalls:sys_exit_kill [Tracepoint event] syscalls:sys_exit_lchown [Tracepoint event] syscalls:sys_exit_lgetxattr [Tracepoint event] syscalls:sys_exit_link [Tracepoint event] syscalls:sys_exit_linkat [Tracepoint event] syscalls:sys_exit_listen [Tracepoint event] syscalls:sys_exit_listxattr [Tracepoint event] syscalls:sys_exit_llistxattr [Tracepoint event] syscalls:sys_exit_lookup_dcookie [Tracepoint event] syscalls:sys_exit_lremovexattr [Tracepoint event] syscalls:sys_exit_lseek [Tracepoint event] syscalls:sys_exit_lsetxattr [Tracepoint event] syscalls:sys_exit_madvise [Tracepoint event] syscalls:sys_exit_mbind [Tracepoint event] syscalls:sys_exit_membarrier [Tracepoint event] syscalls:sys_exit_memfd_create [Tracepoint event] syscalls:sys_exit_migrate_pages [Tracepoint event] syscalls:sys_exit_mincore [Tracepoint event] syscalls:sys_exit_mkdir [Tracepoint event] syscalls:sys_exit_mkdirat [Tracepoint event] syscalls:sys_exit_mknod [Tracepoint event] syscalls:sys_exit_mknodat [Tracepoint event] syscalls:sys_exit_mlock [Tracepoint event] syscalls:sys_exit_mlock2 [Tracepoint event] syscalls:sys_exit_mlockall [Tracepoint event] syscalls:sys_exit_mmap [Tracepoint event] syscalls:sys_exit_modify_ldt [Tracepoint event] syscalls:sys_exit_mount [Tracepoint event] syscalls:sys_exit_move_pages [Tracepoint event] syscalls:sys_exit_mprotect [Tracepoint event] syscalls:sys_exit_mq_getsetattr [Tracepoint event] syscalls:sys_exit_mq_notify [Tracepoint event] syscalls:sys_exit_mq_open [Tracepoint event] syscalls:sys_exit_mq_timedreceive [Tracepoint event] syscalls:sys_exit_mq_timedsend [Tracepoint event] syscalls:sys_exit_mq_unlink [Tracepoint event] syscalls:sys_exit_mremap [Tracepoint event] syscalls:sys_exit_msgctl [Tracepoint event] syscalls:sys_exit_msgget [Tracepoint event] syscalls:sys_exit_msgrcv [Tracepoint event] syscalls:sys_exit_msgsnd [Tracepoint event] syscalls:sys_exit_msync [Tracepoint event] syscalls:sys_exit_munlock [Tracepoint event] syscalls:sys_exit_munlockall [Tracepoint event] syscalls:sys_exit_munmap [Tracepoint event] syscalls:sys_exit_name_to_handle_at [Tracepoint event] syscalls:sys_exit_nanosleep [Tracepoint event] syscalls:sys_exit_newfstat [Tracepoint event] syscalls:sys_exit_newfstatat [Tracepoint event] syscalls:sys_exit_newlstat [Tracepoint event] syscalls:sys_exit_newstat [Tracepoint event] syscalls:sys_exit_newuname [Tracepoint event] syscalls:sys_exit_open [Tracepoint event] syscalls:sys_exit_open_by_handle_at [Tracepoint event] syscalls:sys_exit_openat [Tracepoint event] syscalls:sys_exit_pause [Tracepoint event] syscalls:sys_exit_perf_event_open [Tracepoint event] syscalls:sys_exit_personality [Tracepoint event] syscalls:sys_exit_pipe [Tracepoint event] syscalls:sys_exit_pipe2 [Tracepoint event] syscalls:sys_exit_pivot_root [Tracepoint event] syscalls:sys_exit_pkey_alloc [Tracepoint event] syscalls:sys_exit_pkey_free [Tracepoint event] syscalls:sys_exit_pkey_mprotect [Tracepoint event] syscalls:sys_exit_poll [Tracepoint event] syscalls:sys_exit_ppoll [Tracepoint event] syscalls:sys_exit_prctl [Tracepoint event] syscalls:sys_exit_pread64 [Tracepoint event] syscalls:sys_exit_preadv [Tracepoint event] syscalls:sys_exit_preadv2 [Tracepoint event] syscalls:sys_exit_prlimit64 [Tracepoint event] syscalls:sys_exit_process_vm_readv [Tracepoint event] syscalls:sys_exit_process_vm_writev [Tracepoint event] syscalls:sys_exit_pselect6 [Tracepoint event] syscalls:sys_exit_ptrace [Tracepoint event] syscalls:sys_exit_pwrite64 [Tracepoint event] syscalls:sys_exit_pwritev [Tracepoint event] syscalls:sys_exit_pwritev2 [Tracepoint event] syscalls:sys_exit_quotactl [Tracepoint event] syscalls:sys_exit_read [Tracepoint event] syscalls:sys_exit_readahead [Tracepoint event] syscalls:sys_exit_readlink [Tracepoint event] syscalls:sys_exit_readlinkat [Tracepoint event] syscalls:sys_exit_readv [Tracepoint event] syscalls:sys_exit_reboot [Tracepoint event] syscalls:sys_exit_recvfrom [Tracepoint event] syscalls:sys_exit_recvmmsg [Tracepoint event] syscalls:sys_exit_recvmsg [Tracepoint event] syscalls:sys_exit_remap_file_pages [Tracepoint event] syscalls:sys_exit_removexattr [Tracepoint event] syscalls:sys_exit_rename [Tracepoint event] syscalls:sys_exit_renameat [Tracepoint event] syscalls:sys_exit_renameat2 [Tracepoint event] syscalls:sys_exit_request_key [Tracepoint event] syscalls:sys_exit_restart_syscall [Tracepoint event] syscalls:sys_exit_rmdir [Tracepoint event] syscalls:sys_exit_rseq [Tracepoint event] syscalls:sys_exit_rt_sigaction [Tracepoint event] syscalls:sys_exit_rt_sigpending [Tracepoint event] syscalls:sys_exit_rt_sigprocmask [Tracepoint event] syscalls:sys_exit_rt_sigqueueinfo [Tracepoint event] syscalls:sys_exit_rt_sigreturn [Tracepoint event] syscalls:sys_exit_rt_sigsuspend [Tracepoint event] syscalls:sys_exit_rt_sigtimedwait [Tracepoint event] syscalls:sys_exit_rt_tgsigqueueinfo [Tracepoint event] syscalls:sys_exit_sched_get_priority_max [Tracepoint event] syscalls:sys_exit_sched_get_priority_min [Tracepoint event] syscalls:sys_exit_sched_getaffinity [Tracepoint event] syscalls:sys_exit_sched_getattr [Tracepoint event] syscalls:sys_exit_sched_getparam [Tracepoint event] syscalls:sys_exit_sched_getscheduler [Tracepoint event] syscalls:sys_exit_sched_rr_get_interval [Tracepoint event] syscalls:sys_exit_sched_setaffinity [Tracepoint event] syscalls:sys_exit_sched_setattr [Tracepoint event] syscalls:sys_exit_sched_setparam [Tracepoint event] syscalls:sys_exit_sched_setscheduler [Tracepoint event] syscalls:sys_exit_sched_yield [Tracepoint event] syscalls:sys_exit_seccomp [Tracepoint event] syscalls:sys_exit_select [Tracepoint event] syscalls:sys_exit_semctl [Tracepoint event] syscalls:sys_exit_semget [Tracepoint event] syscalls:sys_exit_semop [Tracepoint event] syscalls:sys_exit_semtimedop [Tracepoint event] syscalls:sys_exit_sendfile64 [Tracepoint event] syscalls:sys_exit_sendmmsg [Tracepoint event] syscalls:sys_exit_sendmsg [Tracepoint event] syscalls:sys_exit_sendto [Tracepoint event] syscalls:sys_exit_set_mempolicy [Tracepoint event] syscalls:sys_exit_set_robust_list [Tracepoint event] syscalls:sys_exit_set_tid_address [Tracepoint event] syscalls:sys_exit_setdomainname [Tracepoint event] syscalls:sys_exit_setfsgid [Tracepoint event] syscalls:sys_exit_setfsuid [Tracepoint event] syscalls:sys_exit_setgid [Tracepoint event] syscalls:sys_exit_setgroups [Tracepoint event] syscalls:sys_exit_sethostname [Tracepoint event] syscalls:sys_exit_setitimer [Tracepoint event] syscalls:sys_exit_setns [Tracepoint event] syscalls:sys_exit_setpgid [Tracepoint event] syscalls:sys_exit_setpriority [Tracepoint event] syscalls:sys_exit_setregid [Tracepoint event] syscalls:sys_exit_setresgid [Tracepoint event] syscalls:sys_exit_setresuid [Tracepoint event] syscalls:sys_exit_setreuid [Tracepoint event] syscalls:sys_exit_setrlimit [Tracepoint event] syscalls:sys_exit_setsid [Tracepoint event] syscalls:sys_exit_setsockopt [Tracepoint event] syscalls:sys_exit_settimeofday [Tracepoint event] syscalls:sys_exit_setuid [Tracepoint event] syscalls:sys_exit_setxattr [Tracepoint event] syscalls:sys_exit_shmat [Tracepoint event] syscalls:sys_exit_shmctl [Tracepoint event] syscalls:sys_exit_shmdt [Tracepoint event] syscalls:sys_exit_shmget [Tracepoint event] syscalls:sys_exit_shutdown [Tracepoint event] syscalls:sys_exit_sigaltstack [Tracepoint event] syscalls:sys_exit_signalfd [Tracepoint event] syscalls:sys_exit_signalfd4 [Tracepoint event] syscalls:sys_exit_socket [Tracepoint event] syscalls:sys_exit_socketpair [Tracepoint event] syscalls:sys_exit_splice [Tracepoint event] syscalls:sys_exit_statfs [Tracepoint event] syscalls:sys_exit_statx [Tracepoint event] syscalls:sys_exit_swapoff [Tracepoint event] syscalls:sys_exit_swapon [Tracepoint event] syscalls:sys_exit_symlink [Tracepoint event] syscalls:sys_exit_symlinkat [Tracepoint event] syscalls:sys_exit_sync [Tracepoint event] syscalls:sys_exit_sync_file_range [Tracepoint event] syscalls:sys_exit_syncfs [Tracepoint event] syscalls:sys_exit_sysctl [Tracepoint event] syscalls:sys_exit_sysfs [Tracepoint event] syscalls:sys_exit_sysinfo [Tracepoint event] syscalls:sys_exit_syslog [Tracepoint event] syscalls:sys_exit_tee [Tracepoint event] syscalls:sys_exit_tgkill [Tracepoint event] syscalls:sys_exit_time [Tracepoint event] syscalls:sys_exit_timer_create [Tracepoint event] syscalls:sys_exit_timer_delete [Tracepoint event] syscalls:sys_exit_timer_getoverrun [Tracepoint event] syscalls:sys_exit_timer_gettime [Tracepoint event] syscalls:sys_exit_timer_settime [Tracepoint event] syscalls:sys_exit_timerfd_create [Tracepoint event] syscalls:sys_exit_timerfd_gettime [Tracepoint event] syscalls:sys_exit_timerfd_settime [Tracepoint event] syscalls:sys_exit_times [Tracepoint event] syscalls:sys_exit_tkill [Tracepoint event] syscalls:sys_exit_truncate [Tracepoint event] syscalls:sys_exit_umask [Tracepoint event] syscalls:sys_exit_umount [Tracepoint event] syscalls:sys_exit_unlink [Tracepoint event] syscalls:sys_exit_unlinkat [Tracepoint event] syscalls:sys_exit_unshare [Tracepoint event] syscalls:sys_exit_userfaultfd [Tracepoint event] syscalls:sys_exit_ustat [Tracepoint event] syscalls:sys_exit_utime [Tracepoint event] syscalls:sys_exit_utimensat [Tracepoint event] syscalls:sys_exit_utimes [Tracepoint event] syscalls:sys_exit_vfork [Tracepoint event] syscalls:sys_exit_vhangup [Tracepoint event] syscalls:sys_exit_vmsplice [Tracepoint event] syscalls:sys_exit_wait4 [Tracepoint event] syscalls:sys_exit_waitid [Tracepoint event] syscalls:sys_exit_write [Tracepoint event] syscalls:sys_exit_writev [Tracepoint event]
11-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值