├── .ccls-cache ├── @@home@tony@practure@2020_10_5课程设计@keshe@final │ ├── @usr@include@alloca.h │ ├── @usr@include@alloca.h.blob │ ├── @usr@include@asm-generic@errno-base.h │ ├── @usr@include@asm-generic@errno-base.h.blob │ ├── @usr@include@asm-generic@errno.h │ ├── @usr@include@asm-generic@errno.h.blob │ ├── @usr@include@asm@errno.h │ ├── @usr@include@asm@errno.h.blob │ ├── @usr@include@bits@byteswap.h │ ├── @usr@include@bits@byteswap.h.blob │ ├── @usr@include@bits@confname.h │ ├── @usr@include@bits@confname.h.blob │ ├── @usr@include@bits@endian.h │ ├── @usr@include@bits@endian.h.blob │ ├── @usr@include@bits@endianness.h │ ├── @usr@include@bits@endianness.h.blob │ ├── @usr@include@bits@environments.h │ ├── @usr@include@bits@environments.h.blob │ ├── @usr@include@bits@errno.h │ ├── @usr@include@bits@errno.h.blob │ ├── @usr@include@bits@fcntl-linux.h │ ├── @usr@include@bits@fcntl-linux.h.blob │ ├── @usr@include@bits@fcntl.h │ ├── @usr@include@bits@fcntl.h.blob │ ├── @usr@include@bits@floatn-common.h │ ├── @usr@include@bits@floatn-common.h.blob │ ├── @usr@include@bits@floatn.h │ ├── @usr@include@bits@floatn.h.blob │ ├── @usr@include@bits@getopt_core.h │ ├── @usr@include@bits@getopt_core.h.blob │ ├── @usr@include@bits@getopt_posix.h │ ├── @usr@include@bits@getopt_posix.h.blob │ ├── @usr@include@bits@ipc-perm.h │ ├── @usr@include@bits@ipc-perm.h.blob │ ├── @usr@include@bits@ipc.h │ ├── @usr@include@bits@ipc.h.blob │ ├── @usr@include@bits@ipctypes.h │ ├── @usr@include@bits@ipctypes.h.blob │ ├── @usr@include@bits@libc-header-start.h │ ├── @usr@include@bits@libc-header-start.h.blob │ ├── @usr@include@bits@long-double.h │ ├── @usr@include@bits@long-double.h.blob │ ├── @usr@include@bits@msq.h │ ├── @usr@include@bits@msq.h.blob │ ├── @usr@include@bits@posix_opt.h │ ├── @usr@include@bits@posix_opt.h.blob │ ├── @usr@include@bits@pthreadtypes-arch.h │ ├── @usr@include@bits@pthreadtypes-arch.h.blob │ ├── @usr@include@bits@pthreadtypes.h │ ├── @usr@include@bits@pthreadtypes.h.blob │ ├── @usr@include@bits@select.h │ ├── @usr@include@bits@select.h.blob │ ├── @usr@include@bits@stat.h │ ├── @usr@include@bits@stat.h.blob │ ├── @usr@include@bits@stdint-intn.h │ ├── @usr@include@bits@stdint-intn.h.blob │ ├── @usr@include@bits@stdio_lim.h │ ├── @usr@include@bits@stdio_lim.h.blob │ ├── @usr@include@bits@stdlib-float.h │ ├── @usr@include@bits@stdlib-float.h.blob │ ├── @usr@include@bits@struct_mutex.h │ ├── @usr@include@bits@struct_mutex.h.blob │ ├── @usr@include@bits@struct_rwlock.h │ ├── @usr@include@bits@struct_rwlock.h.blob │ ├── @usr@include@bits@thread-shared-types.h │ ├── @usr@include@bits@thread-shared-types.h.blob │ ├── @usr@include@bits@time64.h │ ├── @usr@include@bits@time64.h.blob │ ├── @usr@include@bits@timesize.h │ ├── @usr@include@bits@timesize.h.blob │ ├── @usr@include@bits@types.h │ ├── @usr@include@bits@types.h.blob │ ├── @usr@include@bits@types@FILE.h │ ├── @usr@include@bits@types@FILE.h.blob │ ├── @usr@include@bits@types@__FILE.h │ ├── @usr@include@bits@types@__FILE.h.blob │ ├── @usr@include@bits@types@__fpos64_t.h │ ├── @usr@include@bits@types@__fpos64_t.h.blob │ ├── @usr@include@bits@types@__fpos_t.h │ ├── @usr@include@bits@types@__fpos_t.h.blob │ ├── @usr@include@bits@types@__locale_t.h │ ├── @usr@include@bits@types@__locale_t.h.blob │ ├── @usr@include@bits@types@__mbstate_t.h │ ├── @usr@include@bits@types@__mbstate_t.h.blob │ ├── @usr@include@bits@types@__sigset_t.h │ ├── @usr@include@bits@types@__sigset_t.h.blob │ ├── @usr@include@bits@types@clock_t.h │ ├── @usr@include@bits@types@clock_t.h.blob │ ├── @usr@include@bits@types@clockid_t.h │ ├── @usr@include@bits@types@clockid_t.h.blob │ ├── @usr@include@bits@types@locale_t.h │ ├── @usr@include@bits@types@locale_t.h.blob │ ├── @usr@include@bits@types@sigset_t.h │ ├── @usr@include@bits@types@sigset_t.h.blob │ ├── @usr@include@bits@types@struct_FILE.h │ ├── @usr@include@bits@types@struct_FILE.h.blob │ ├── @usr@include@bits@types@struct_msqid_ds.h │ ├── @usr@include@bits@types@struct_msqid_ds.h.blob │ ├── @usr@include@bits@types@struct_timespec.h │ ├── @usr@include@bits@types@struct_timespec.h.blob │ ├── @usr@include@bits@types@struct_timeval.h │ ├── @usr@include@bits@types@struct_timeval.h.blob │ ├── @usr@include@bits@types@time_t.h │ ├── @usr@include@bits@types@time_t.h.blob │ ├── @usr@include@bits@types@timer_t.h │ ├── @usr@include@bits@types@timer_t.h.blob │ ├── @usr@include@bits@typesizes.h │ ├── @usr@include@bits@typesizes.h.blob │ ├── @usr@include@bits@uintn-identity.h │ ├── @usr@include@bits@uintn-identity.h.blob │ ├── @usr@include@bits@unistd_ext.h │ ├── @usr@include@bits@unistd_ext.h.blob │ ├── @usr@include@bits@waitflags.h │ ├── @usr@include@bits@waitflags.h.blob │ ├── @usr@include@bits@waitstatus.h │ ├── @usr@include@bits@waitstatus.h.blob │ ├── @usr@include@bits@wordsize.h │ ├── @usr@include@bits@wordsize.h.blob │ ├── @usr@include@endian.h │ ├── @usr@include@endian.h.blob │ ├── @usr@include@errno.h │ ├── @usr@include@errno.h.blob │ ├── @usr@include@fcntl.h │ ├── @usr@include@fcntl.h.blob │ ├── @usr@include@features.h │ ├── @usr@include@features.h.blob │ ├── @usr@include@gnu@stubs-64.h │ ├── @usr@include@gnu@stubs-64.h.blob │ ├── @usr@include@gnu@stubs.h │ ├── @usr@include@gnu@stubs.h.blob │ ├── @usr@include@linux@errno.h │ ├── @usr@include@linux@errno.h.blob │ ├── @usr@include@stdc-predef.h │ ├── @usr@include@stdc-predef.h.blob │ ├── @usr@include@stdio.h │ ├── @usr@include@stdio.h.blob │ ├── @usr@include@stdlib.h │ ├── @usr@include@stdlib.h.blob │ ├── @usr@include@string.h │ ├── @usr@include@string.h.blob │ ├── @usr@include@strings.h │ ├── @usr@include@strings.h.blob │ ├── @usr@include@sys@cdefs.h │ ├── @usr@include@sys@cdefs.h.blob │ ├── @usr@include@sys@ipc.h │ ├── @usr@include@sys@ipc.h.blob │ ├── @usr@include@sys@msg.h │ ├── @usr@include@sys@msg.h.blob │ ├── @usr@include@sys@select.h │ ├── @usr@include@sys@select.h.blob │ ├── @usr@include@sys@stat.h │ ├── @usr@include@sys@stat.h.blob │ ├── @usr@include@sys@types.h │ ├── @usr@include@sys@types.h.blob │ ├── @usr@include@unistd.h │ ├── @usr@include@unistd.h.blob │ ├── @usr@lib@clang@10.0.1@include@stdarg.h │ ├── @usr@lib@clang@10.0.1@include@stdarg.h.blob │ ├── @usr@lib@clang@10.0.1@include@stddef.h │ └── @usr@lib@clang@10.0.1@include@stddef.h.blob └── @home@tony@practure@2020_10_5课程设计@keshe@final │ ├── background.c │ ├── background.c.blob │ ├── ybxsh.c │ └── ybxsh.c.blob ├── .github └── workflows │ └── c-cpp.yml ├── Makefile ├── README.md ├── background.c ├── ybxsh.c ├── 课程设计任务书 ├── 课程设计任务书.doc └── 课程设计任务书.pdf └── 课程设计报告 └── picture ├── man_execl.png ├── man_fcntl_h.png ├── man_fork.png ├── man_msgctl.png ├── man_msgsnd.png ├── man_popen.png ├── man_sys_ipc_h.png ├── man_sys_msg_h.png ├── man_sys_stat_h.png ├── man_sys_types_h.png ├── 开发环境.png └── 项目介绍.png /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@alloca.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1992-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _ALLOCA_H 19 | #define _ALLOCA_H 1 20 | 21 | #include 22 | 23 | #define __need_size_t 24 | #include 25 | 26 | __BEGIN_DECLS 27 | 28 | /* Remove any previous definitions. */ 29 | #undef alloca 30 | 31 | /* Allocate a block that will be freed when the calling function exits. */ 32 | extern void *alloca (size_t __size) __THROW; 33 | 34 | #ifdef __GNUC__ 35 | # define alloca(size) __builtin_alloca (size) 36 | #endif /* GCC. */ 37 | 38 | __END_DECLS 39 | 40 | #endif /* alloca.h */ 41 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@alloca.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@alloca.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno-base.h: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 | #ifndef _ASM_GENERIC_ERRNO_BASE_H 3 | #define _ASM_GENERIC_ERRNO_BASE_H 4 | 5 | #define EPERM 1 /* Operation not permitted */ 6 | #define ENOENT 2 /* No such file or directory */ 7 | #define ESRCH 3 /* No such process */ 8 | #define EINTR 4 /* Interrupted system call */ 9 | #define EIO 5 /* I/O error */ 10 | #define ENXIO 6 /* No such device or address */ 11 | #define E2BIG 7 /* Argument list too long */ 12 | #define ENOEXEC 8 /* Exec format error */ 13 | #define EBADF 9 /* Bad file number */ 14 | #define ECHILD 10 /* No child processes */ 15 | #define EAGAIN 11 /* Try again */ 16 | #define ENOMEM 12 /* Out of memory */ 17 | #define EACCES 13 /* Permission denied */ 18 | #define EFAULT 14 /* Bad address */ 19 | #define ENOTBLK 15 /* Block device required */ 20 | #define EBUSY 16 /* Device or resource busy */ 21 | #define EEXIST 17 /* File exists */ 22 | #define EXDEV 18 /* Cross-device link */ 23 | #define ENODEV 19 /* No such device */ 24 | #define ENOTDIR 20 /* Not a directory */ 25 | #define EISDIR 21 /* Is a directory */ 26 | #define EINVAL 22 /* Invalid argument */ 27 | #define ENFILE 23 /* File table overflow */ 28 | #define EMFILE 24 /* Too many open files */ 29 | #define ENOTTY 25 /* Not a typewriter */ 30 | #define ETXTBSY 26 /* Text file busy */ 31 | #define EFBIG 27 /* File too large */ 32 | #define ENOSPC 28 /* No space left on device */ 33 | #define ESPIPE 29 /* Illegal seek */ 34 | #define EROFS 30 /* Read-only file system */ 35 | #define EMLINK 31 /* Too many links */ 36 | #define EPIPE 32 /* Broken pipe */ 37 | #define EDOM 33 /* Math argument out of domain of func */ 38 | #define ERANGE 34 /* Math result not representable */ 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno-base.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno-base.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno.h: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 | #ifndef _ASM_GENERIC_ERRNO_H 3 | #define _ASM_GENERIC_ERRNO_H 4 | 5 | #include 6 | 7 | #define EDEADLK 35 /* Resource deadlock would occur */ 8 | #define ENAMETOOLONG 36 /* File name too long */ 9 | #define ENOLCK 37 /* No record locks available */ 10 | 11 | /* 12 | * This error code is special: arch syscall entry code will return 13 | * -ENOSYS if users try to call a syscall that doesn't exist. To keep 14 | * failures of syscalls that really do exist distinguishable from 15 | * failures due to attempts to use a nonexistent syscall, syscall 16 | * implementations should refrain from returning -ENOSYS. 17 | */ 18 | #define ENOSYS 38 /* Invalid system call number */ 19 | 20 | #define ENOTEMPTY 39 /* Directory not empty */ 21 | #define ELOOP 40 /* Too many symbolic links encountered */ 22 | #define EWOULDBLOCK EAGAIN /* Operation would block */ 23 | #define ENOMSG 42 /* No message of desired type */ 24 | #define EIDRM 43 /* Identifier removed */ 25 | #define ECHRNG 44 /* Channel number out of range */ 26 | #define EL2NSYNC 45 /* Level 2 not synchronized */ 27 | #define EL3HLT 46 /* Level 3 halted */ 28 | #define EL3RST 47 /* Level 3 reset */ 29 | #define ELNRNG 48 /* Link number out of range */ 30 | #define EUNATCH 49 /* Protocol driver not attached */ 31 | #define ENOCSI 50 /* No CSI structure available */ 32 | #define EL2HLT 51 /* Level 2 halted */ 33 | #define EBADE 52 /* Invalid exchange */ 34 | #define EBADR 53 /* Invalid request descriptor */ 35 | #define EXFULL 54 /* Exchange full */ 36 | #define ENOANO 55 /* No anode */ 37 | #define EBADRQC 56 /* Invalid request code */ 38 | #define EBADSLT 57 /* Invalid slot */ 39 | 40 | #define EDEADLOCK EDEADLK 41 | 42 | #define EBFONT 59 /* Bad font file format */ 43 | #define ENOSTR 60 /* Device not a stream */ 44 | #define ENODATA 61 /* No data available */ 45 | #define ETIME 62 /* Timer expired */ 46 | #define ENOSR 63 /* Out of streams resources */ 47 | #define ENONET 64 /* Machine is not on the network */ 48 | #define ENOPKG 65 /* Package not installed */ 49 | #define EREMOTE 66 /* Object is remote */ 50 | #define ENOLINK 67 /* Link has been severed */ 51 | #define EADV 68 /* Advertise error */ 52 | #define ESRMNT 69 /* Srmount error */ 53 | #define ECOMM 70 /* Communication error on send */ 54 | #define EPROTO 71 /* Protocol error */ 55 | #define EMULTIHOP 72 /* Multihop attempted */ 56 | #define EDOTDOT 73 /* RFS specific error */ 57 | #define EBADMSG 74 /* Not a data message */ 58 | #define EOVERFLOW 75 /* Value too large for defined data type */ 59 | #define ENOTUNIQ 76 /* Name not unique on network */ 60 | #define EBADFD 77 /* File descriptor in bad state */ 61 | #define EREMCHG 78 /* Remote address changed */ 62 | #define ELIBACC 79 /* Can not access a needed shared library */ 63 | #define ELIBBAD 80 /* Accessing a corrupted shared library */ 64 | #define ELIBSCN 81 /* .lib section in a.out corrupted */ 65 | #define ELIBMAX 82 /* Attempting to link in too many shared libraries */ 66 | #define ELIBEXEC 83 /* Cannot exec a shared library directly */ 67 | #define EILSEQ 84 /* Illegal byte sequence */ 68 | #define ERESTART 85 /* Interrupted system call should be restarted */ 69 | #define ESTRPIPE 86 /* Streams pipe error */ 70 | #define EUSERS 87 /* Too many users */ 71 | #define ENOTSOCK 88 /* Socket operation on non-socket */ 72 | #define EDESTADDRREQ 89 /* Destination address required */ 73 | #define EMSGSIZE 90 /* Message too long */ 74 | #define EPROTOTYPE 91 /* Protocol wrong type for socket */ 75 | #define ENOPROTOOPT 92 /* Protocol not available */ 76 | #define EPROTONOSUPPORT 93 /* Protocol not supported */ 77 | #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ 78 | #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ 79 | #define EPFNOSUPPORT 96 /* Protocol family not supported */ 80 | #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ 81 | #define EADDRINUSE 98 /* Address already in use */ 82 | #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ 83 | #define ENETDOWN 100 /* Network is down */ 84 | #define ENETUNREACH 101 /* Network is unreachable */ 85 | #define ENETRESET 102 /* Network dropped connection because of reset */ 86 | #define ECONNABORTED 103 /* Software caused connection abort */ 87 | #define ECONNRESET 104 /* Connection reset by peer */ 88 | #define ENOBUFS 105 /* No buffer space available */ 89 | #define EISCONN 106 /* Transport endpoint is already connected */ 90 | #define ENOTCONN 107 /* Transport endpoint is not connected */ 91 | #define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ 92 | #define ETOOMANYREFS 109 /* Too many references: cannot splice */ 93 | #define ETIMEDOUT 110 /* Connection timed out */ 94 | #define ECONNREFUSED 111 /* Connection refused */ 95 | #define EHOSTDOWN 112 /* Host is down */ 96 | #define EHOSTUNREACH 113 /* No route to host */ 97 | #define EALREADY 114 /* Operation already in progress */ 98 | #define EINPROGRESS 115 /* Operation now in progress */ 99 | #define ESTALE 116 /* Stale file handle */ 100 | #define EUCLEAN 117 /* Structure needs cleaning */ 101 | #define ENOTNAM 118 /* Not a XENIX named type file */ 102 | #define ENAVAIL 119 /* No XENIX semaphores available */ 103 | #define EISNAM 120 /* Is a named type file */ 104 | #define EREMOTEIO 121 /* Remote I/O error */ 105 | #define EDQUOT 122 /* Quota exceeded */ 106 | 107 | #define ENOMEDIUM 123 /* No medium found */ 108 | #define EMEDIUMTYPE 124 /* Wrong medium type */ 109 | #define ECANCELED 125 /* Operation Canceled */ 110 | #define ENOKEY 126 /* Required key not available */ 111 | #define EKEYEXPIRED 127 /* Key has expired */ 112 | #define EKEYREVOKED 128 /* Key has been revoked */ 113 | #define EKEYREJECTED 129 /* Key was rejected by service */ 114 | 115 | /* for robust mutexes */ 116 | #define EOWNERDEAD 130 /* Owner died */ 117 | #define ENOTRECOVERABLE 131 /* State not recoverable */ 118 | 119 | #define ERFKILL 132 /* Operation not possible due to RF-kill */ 120 | 121 | #define EHWPOISON 133 /* Memory page has hardware error */ 122 | 123 | #endif 124 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm-generic@errno.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm@errno.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm@errno.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@asm@errno.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@byteswap.h: -------------------------------------------------------------------------------- 1 | /* Macros and inline functions to swap the order of bytes in integer values. 2 | Copyright (C) 1997-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | #ifndef _BITS_BYTESWAP_H 24 | #define _BITS_BYTESWAP_H 1 25 | 26 | #include 27 | #include 28 | 29 | /* Swap bytes in 16-bit value. */ 30 | #define __bswap_constant_16(x) \ 31 | ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) 32 | 33 | static __inline __uint16_t 34 | __bswap_16 (__uint16_t __bsx) 35 | { 36 | #if __GNUC_PREREQ (4, 8) 37 | return __builtin_bswap16 (__bsx); 38 | #else 39 | return __bswap_constant_16 (__bsx); 40 | #endif 41 | } 42 | 43 | /* Swap bytes in 32-bit value. */ 44 | #define __bswap_constant_32(x) \ 45 | ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) \ 46 | | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) 47 | 48 | static __inline __uint32_t 49 | __bswap_32 (__uint32_t __bsx) 50 | { 51 | #if __GNUC_PREREQ (4, 3) 52 | return __builtin_bswap32 (__bsx); 53 | #else 54 | return __bswap_constant_32 (__bsx); 55 | #endif 56 | } 57 | 58 | /* Swap bytes in 64-bit value. */ 59 | #define __bswap_constant_64(x) \ 60 | ((((x) & 0xff00000000000000ull) >> 56) \ 61 | | (((x) & 0x00ff000000000000ull) >> 40) \ 62 | | (((x) & 0x0000ff0000000000ull) >> 24) \ 63 | | (((x) & 0x000000ff00000000ull) >> 8) \ 64 | | (((x) & 0x00000000ff000000ull) << 8) \ 65 | | (((x) & 0x0000000000ff0000ull) << 24) \ 66 | | (((x) & 0x000000000000ff00ull) << 40) \ 67 | | (((x) & 0x00000000000000ffull) << 56)) 68 | 69 | __extension__ static __inline __uint64_t 70 | __bswap_64 (__uint64_t __bsx) 71 | { 72 | #if __GNUC_PREREQ (4, 3) 73 | return __builtin_bswap64 (__bsx); 74 | #else 75 | return __bswap_constant_64 (__bsx); 76 | #endif 77 | } 78 | 79 | #endif /* _BITS_BYTESWAP_H */ 80 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@byteswap.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@byteswap.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@confname.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@confname.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endian.h: -------------------------------------------------------------------------------- 1 | /* Endian macros for string.h functions 2 | Copyright (C) 1992-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_ENDIAN_H 20 | #define _BITS_ENDIAN_H 1 21 | 22 | /* Definitions for byte order, according to significance of bytes, 23 | from low addresses to high addresses. The value is what you get by 24 | putting '4' in the most significant byte, '3' in the second most 25 | significant byte, '2' in the second least significant byte, and '1' 26 | in the least significant byte, and then writing down one digit for 27 | each byte, starting with the byte at the lowest address at the left, 28 | and proceeding to the byte with the highest address at the right. */ 29 | 30 | #define __LITTLE_ENDIAN 1234 31 | #define __BIG_ENDIAN 4321 32 | #define __PDP_ENDIAN 3412 33 | 34 | /* This file defines `__BYTE_ORDER' for the particular machine. */ 35 | #include 36 | 37 | /* Some machines may need to use a different endianness for floating point 38 | values. */ 39 | #ifndef __FLOAT_WORD_ORDER 40 | # define __FLOAT_WORD_ORDER __BYTE_ORDER 41 | #endif 42 | 43 | #if __BYTE_ORDER == __LITTLE_ENDIAN 44 | # define __LONG_LONG_PAIR(HI, LO) LO, HI 45 | #elif __BYTE_ORDER == __BIG_ENDIAN 46 | # define __LONG_LONG_PAIR(HI, LO) HI, LO 47 | #endif 48 | 49 | #endif /* bits/endian.h */ 50 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endian.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endian.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endianness.h: -------------------------------------------------------------------------------- 1 | #ifndef _BITS_ENDIANNESS_H 2 | #define _BITS_ENDIANNESS_H 1 3 | 4 | #ifndef _BITS_ENDIAN_H 5 | # error "Never use directly; include instead." 6 | #endif 7 | 8 | /* i386/x86_64 are little-endian. */ 9 | #define __BYTE_ORDER __LITTLE_ENDIAN 10 | 11 | #endif /* bits/endianness.h */ 12 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endianness.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@endianness.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@environments.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1999-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _UNISTD_H 19 | # error "Never include this file directly. Use instead" 20 | #endif 21 | 22 | #include 23 | 24 | /* This header should define the following symbols under the described 25 | situations. A value `1' means that the model is always supported, 26 | `-1' means it is never supported. Undefined means it cannot be 27 | statically decided. 28 | 29 | _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type 30 | _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type 31 | 32 | _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type 33 | _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type 34 | 35 | The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, 36 | _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, 37 | _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were 38 | used in previous versions of the Unix standard and are available 39 | only for compatibility. 40 | */ 41 | 42 | #if __WORDSIZE == 64 43 | 44 | /* Environments with 32-bit wide pointers are optionally provided. 45 | Therefore following macros aren't defined: 46 | # undef _POSIX_V7_ILP32_OFF32 47 | # undef _POSIX_V7_ILP32_OFFBIG 48 | # undef _POSIX_V6_ILP32_OFF32 49 | # undef _POSIX_V6_ILP32_OFFBIG 50 | # undef _XBS5_ILP32_OFF32 51 | # undef _XBS5_ILP32_OFFBIG 52 | and users need to check at runtime. */ 53 | 54 | /* We also have no use (for now) for an environment with bigger pointers 55 | and offsets. */ 56 | # define _POSIX_V7_LPBIG_OFFBIG -1 57 | # define _POSIX_V6_LPBIG_OFFBIG -1 58 | # define _XBS5_LPBIG_OFFBIG -1 59 | 60 | /* By default we have 64-bit wide `long int', pointers and `off_t'. */ 61 | # define _POSIX_V7_LP64_OFF64 1 62 | # define _POSIX_V6_LP64_OFF64 1 63 | # define _XBS5_LP64_OFF64 1 64 | 65 | #else /* __WORDSIZE == 32 */ 66 | 67 | /* We have 32-bit wide `int', `long int' and pointers and all platforms 68 | support LFS. -mx32 has 64-bit wide `off_t'. */ 69 | # define _POSIX_V7_ILP32_OFFBIG 1 70 | # define _POSIX_V6_ILP32_OFFBIG 1 71 | # define _XBS5_ILP32_OFFBIG 1 72 | 73 | # ifndef __x86_64__ 74 | /* -m32 has 32-bit wide `off_t'. */ 75 | # define _POSIX_V7_ILP32_OFF32 1 76 | # define _POSIX_V6_ILP32_OFF32 1 77 | # define _XBS5_ILP32_OFF32 1 78 | # endif 79 | 80 | /* We optionally provide an environment with the above size but an 64-bit 81 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ 82 | 83 | /* Environments with 64-bit wide pointers can be provided, 84 | so these macros aren't defined: 85 | # undef _POSIX_V7_LP64_OFF64 86 | # undef _POSIX_V7_LPBIG_OFFBIG 87 | # undef _POSIX_V6_LP64_OFF64 88 | # undef _POSIX_V6_LPBIG_OFFBIG 89 | # undef _XBS5_LP64_OFF64 90 | # undef _XBS5_LPBIG_OFFBIG 91 | and sysconf tests for it at runtime. */ 92 | 93 | #endif /* __WORDSIZE == 32 */ 94 | 95 | #define __ILP32_OFF32_CFLAGS "-m32" 96 | #define __ILP32_OFF32_LDFLAGS "-m32" 97 | #if defined __x86_64__ && defined __ILP32__ 98 | # define __ILP32_OFFBIG_CFLAGS "-mx32" 99 | # define __ILP32_OFFBIG_LDFLAGS "-mx32" 100 | #else 101 | # define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 102 | # define __ILP32_OFFBIG_LDFLAGS "-m32" 103 | #endif 104 | #define __LP64_OFF64_CFLAGS "-m64" 105 | #define __LP64_OFF64_LDFLAGS "-m64" 106 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@environments.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@environments.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@errno.h: -------------------------------------------------------------------------------- 1 | /* Error constants. Linux specific version. 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_ERRNO_H 20 | #define _BITS_ERRNO_H 1 21 | 22 | #if !defined _ERRNO_H 23 | # error "Never include directly; use instead." 24 | #endif 25 | 26 | # include 27 | 28 | /* Older Linux headers do not define these constants. */ 29 | # ifndef ENOTSUP 30 | # define ENOTSUP EOPNOTSUPP 31 | # endif 32 | 33 | # ifndef ECANCELED 34 | # define ECANCELED 125 35 | # endif 36 | 37 | # ifndef EOWNERDEAD 38 | # define EOWNERDEAD 130 39 | # endif 40 | 41 | #ifndef ENOTRECOVERABLE 42 | # define ENOTRECOVERABLE 131 43 | # endif 44 | 45 | # ifndef ERFKILL 46 | # define ERFKILL 132 47 | # endif 48 | 49 | # ifndef EHWPOISON 50 | # define EHWPOISON 133 51 | # endif 52 | 53 | #endif /* bits/errno.h. */ 54 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@errno.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@errno.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@fcntl-linux.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@fcntl-linux.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@fcntl.h: -------------------------------------------------------------------------------- 1 | /* O_*, F_*, FD_* bit values for Linux/x86. 2 | Copyright (C) 2001-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _FCNTL_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | #ifdef __x86_64__ 24 | # define __O_LARGEFILE 0 25 | #endif 26 | 27 | #ifdef __x86_64__ 28 | /* Not necessary, we always have 64-bit offsets. */ 29 | # define F_GETLK64 5 /* Get record locking info. */ 30 | # define F_SETLK64 6 /* Set record locking info (non-blocking). */ 31 | # define F_SETLKW64 7 /* Set record locking info (blocking). */ 32 | #endif 33 | 34 | 35 | struct flock 36 | { 37 | short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ 38 | short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ 39 | #ifndef __USE_FILE_OFFSET64 40 | __off_t l_start; /* Offset where the lock begins. */ 41 | __off_t l_len; /* Size of the locked area; zero means until EOF. */ 42 | #else 43 | __off64_t l_start; /* Offset where the lock begins. */ 44 | __off64_t l_len; /* Size of the locked area; zero means until EOF. */ 45 | #endif 46 | __pid_t l_pid; /* Process holding the lock. */ 47 | }; 48 | 49 | #ifdef __USE_LARGEFILE64 50 | struct flock64 51 | { 52 | short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ 53 | short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ 54 | __off64_t l_start; /* Offset where the lock begins. */ 55 | __off64_t l_len; /* Size of the locked area; zero means until EOF. */ 56 | __pid_t l_pid; /* Process holding the lock. */ 57 | }; 58 | #endif 59 | 60 | /* Include generic Linux declarations. */ 61 | #include 62 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@fcntl.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@fcntl.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@floatn-common.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@floatn-common.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@floatn.h: -------------------------------------------------------------------------------- 1 | /* Macros to control TS 18661-3 glibc features on x86. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_FLOATN_H 20 | #define _BITS_FLOATN_H 21 | 22 | #include 23 | 24 | /* Defined to 1 if the current compiler invocation provides a 25 | floating-point type with the IEEE 754 binary128 format, and this 26 | glibc includes corresponding *f128 interfaces for it. The required 27 | libgcc support was added some time after the basic compiler 28 | support, for x86_64 and x86. */ 29 | #if (defined __x86_64__ \ 30 | ? __GNUC_PREREQ (4, 3) \ 31 | : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) 32 | # define __HAVE_FLOAT128 1 33 | #else 34 | # define __HAVE_FLOAT128 0 35 | #endif 36 | 37 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct 38 | from the default float, double and long double types in this glibc. */ 39 | #if __HAVE_FLOAT128 40 | # define __HAVE_DISTINCT_FLOAT128 1 41 | #else 42 | # define __HAVE_DISTINCT_FLOAT128 0 43 | #endif 44 | 45 | /* Defined to 1 if the current compiler invocation provides a 46 | floating-point type with the right format for _Float64x, and this 47 | glibc includes corresponding *f64x interfaces for it. */ 48 | #define __HAVE_FLOAT64X 1 49 | 50 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format 51 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has 52 | the format of _Float128, which must be different from that of long 53 | double. */ 54 | #define __HAVE_FLOAT64X_LONG_DOUBLE 1 55 | 56 | #ifndef __ASSEMBLER__ 57 | 58 | /* Defined to concatenate the literal suffix to be used with _Float128 59 | types, if __HAVE_FLOAT128 is 1. */ 60 | # if __HAVE_FLOAT128 61 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus 62 | /* The literal suffix f128 exists only since GCC 7.0. */ 63 | # define __f128(x) x##q 64 | # else 65 | # define __f128(x) x##f128 66 | # endif 67 | # endif 68 | 69 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ 70 | # if __HAVE_FLOAT128 71 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus 72 | /* Add a typedef for older GCC compilers which don't natively support 73 | _Complex _Float128. */ 74 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); 75 | # define __CFLOAT128 __cfloat128 76 | # else 77 | # define __CFLOAT128 _Complex _Float128 78 | # endif 79 | # endif 80 | 81 | /* The remaining of this file provides support for older compilers. */ 82 | # if __HAVE_FLOAT128 83 | 84 | /* The type _Float128 exists only since GCC 7.0. */ 85 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus 86 | typedef __float128 _Float128; 87 | # endif 88 | 89 | /* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ 90 | # if !__GNUC_PREREQ (7, 0) 91 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) 92 | # endif 93 | 94 | /* Older GCC has only a subset of built-in functions for _Float128 on 95 | x86, and __builtin_infq is not usable in static initializers. 96 | Converting a narrower sNaN to _Float128 produces a quiet NaN, so 97 | attempts to use _Float128 sNaNs will not work properly with older 98 | compilers. */ 99 | # if !__GNUC_PREREQ (7, 0) 100 | # define __builtin_copysignf128 __builtin_copysignq 101 | # define __builtin_fabsf128 __builtin_fabsq 102 | # define __builtin_inff128() ((_Float128) __builtin_inf ()) 103 | # define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) 104 | # define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) 105 | # endif 106 | 107 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, 108 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never 109 | been a __builtin_signbitf128 in GCC and the type-generic builtin is 110 | only available since GCC 6. */ 111 | # if !__GNUC_PREREQ (6, 0) 112 | # define __builtin_signbitf128 __signbitf128 113 | # endif 114 | 115 | # endif 116 | 117 | #endif /* !__ASSEMBLER__. */ 118 | 119 | #include 120 | 121 | #endif /* _BITS_FLOATN_H */ 122 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@floatn.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@floatn.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_core.h: -------------------------------------------------------------------------------- 1 | /* Declarations for getopt (basic, portable features only). 2 | Copyright (C) 1989-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library and is also part of gnulib. 4 | Patches to this file should be submitted to both projects. 5 | 6 | The GNU C Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Lesser General Public 8 | License as published by the Free Software Foundation; either 9 | version 2.1 of the License, or (at your option) any later version. 10 | 11 | The GNU C Library is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | Lesser General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public 17 | License along with the GNU C Library; if not, see 18 | . */ 19 | 20 | #ifndef _GETOPT_CORE_H 21 | #define _GETOPT_CORE_H 1 22 | 23 | /* This header should not be used directly; include getopt.h or 24 | unistd.h instead. Unlike most bits headers, it does not have 25 | a protective #error, because the guard macro for getopt.h in 26 | gnulib is not fixed. */ 27 | 28 | __BEGIN_DECLS 29 | 30 | /* For communication from 'getopt' to the caller. 31 | When 'getopt' finds an option that takes an argument, 32 | the argument value is returned here. 33 | Also, when 'ordering' is RETURN_IN_ORDER, 34 | each non-option ARGV-element is returned here. */ 35 | 36 | extern char *optarg; 37 | 38 | /* Index in ARGV of the next element to be scanned. 39 | This is used for communication to and from the caller 40 | and for communication between successive calls to 'getopt'. 41 | 42 | On entry to 'getopt', zero means this is the first call; initialize. 43 | 44 | When 'getopt' returns -1, this is the index of the first of the 45 | non-option elements that the caller should itself scan. 46 | 47 | Otherwise, 'optind' communicates from one call to the next 48 | how much of ARGV has been scanned so far. */ 49 | 50 | extern int optind; 51 | 52 | /* Callers store zero here to inhibit the error message 'getopt' prints 53 | for unrecognized options. */ 54 | 55 | extern int opterr; 56 | 57 | /* Set to an option character which was unrecognized. */ 58 | 59 | extern int optopt; 60 | 61 | /* Get definitions and prototypes for functions to process the 62 | arguments in ARGV (ARGC of them, minus the program name) for 63 | options given in OPTS. 64 | 65 | Return the option character from OPTS just read. Return -1 when 66 | there are no more options. For unrecognized options, or options 67 | missing arguments, 'optopt' is set to the option letter, and '?' is 68 | returned. 69 | 70 | The OPTS string is a list of characters which are recognized option 71 | letters, optionally followed by colons, specifying that that letter 72 | takes an argument, to be placed in 'optarg'. 73 | 74 | If a letter in OPTS is followed by two colons, its argument is 75 | optional. This behavior is specific to the GNU 'getopt'. 76 | 77 | The argument '--' causes premature termination of argument 78 | scanning, explicitly telling 'getopt' that there are no more 79 | options. 80 | 81 | If OPTS begins with '-', then non-option arguments are treated as 82 | arguments to the option '\1'. This behavior is specific to the GNU 83 | 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in 84 | the environment, then do not permute arguments. 85 | 86 | For standards compliance, the 'argv' argument has the type 87 | char *const *, but this is inaccurate; if argument permutation is 88 | enabled, the argv array (not the strings it points to) must be 89 | writable. */ 90 | 91 | extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) 92 | __THROW __nonnull ((2, 3)); 93 | 94 | __END_DECLS 95 | 96 | #endif /* getopt_core.h */ 97 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_core.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_core.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_posix.h: -------------------------------------------------------------------------------- 1 | /* Declarations for getopt (POSIX compatibility shim). 2 | Copyright (C) 1989-2020 Free Software Foundation, Inc. 3 | Unlike the bulk of the getopt implementation, this file is NOT part 4 | of gnulib. 5 | 6 | The GNU C Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Lesser General Public 8 | License as published by the Free Software Foundation; either 9 | version 2.1 of the License, or (at your option) any later version. 10 | 11 | The GNU C Library is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | Lesser General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public 17 | License along with the GNU C Library; if not, see 18 | . */ 19 | 20 | #ifndef _GETOPT_POSIX_H 21 | #define _GETOPT_POSIX_H 1 22 | 23 | #if !defined _UNISTD_H && !defined _STDIO_H 24 | #error "Never include getopt_posix.h directly; use unistd.h instead." 25 | #endif 26 | 27 | #include 28 | 29 | __BEGIN_DECLS 30 | 31 | #if defined __USE_POSIX2 && !defined __USE_POSIX_IMPLICITLY \ 32 | && !defined __USE_GNU && !defined _GETOPT_H 33 | /* GNU getopt has more functionality than POSIX getopt. When we are 34 | explicitly conforming to POSIX and not GNU, and getopt.h (which is 35 | not part of POSIX) has not been included, the extra functionality 36 | is disabled. */ 37 | # ifdef __REDIRECT 38 | extern int __REDIRECT_NTH (getopt, (int ___argc, char *const *___argv, 39 | const char *__shortopts), 40 | __posix_getopt); 41 | # else 42 | extern int __posix_getopt (int ___argc, char *const *___argv, 43 | const char *__shortopts) 44 | __THROW __nonnull ((2, 3)); 45 | # define getopt __posix_getopt 46 | # endif 47 | #endif 48 | 49 | __END_DECLS 50 | 51 | #endif /* getopt_posix.h */ 52 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_posix.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@getopt_posix.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc-perm.h: -------------------------------------------------------------------------------- 1 | /* struct ipc_perm definition. 2 | Copyright (C) 2019-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _SYS_IPC_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | /* Data structure used to pass permission information to IPC operations. 24 | It follows the kernel ipc64_perm size so the syscall can be made directly 25 | without temporary buffer copy. However, since glibc defines the MODE 26 | field as mode_t per POSIX definition (BZ#18231), it omits the __PAD1 field 27 | (since glibc does not export mode_t as 16-bit for any architecture). */ 28 | struct ipc_perm 29 | { 30 | __key_t __key; /* Key. */ 31 | __uid_t uid; /* Owner's user ID. */ 32 | __gid_t gid; /* Owner's group ID. */ 33 | __uid_t cuid; /* Creator's user ID. */ 34 | __gid_t cgid; /* Creator's group ID. */ 35 | __mode_t mode; /* Read/write permission. */ 36 | unsigned short int __seq; /* Sequence number. */ 37 | unsigned short int __pad2; 38 | __syscall_ulong_t __glibc_reserved1; 39 | __syscall_ulong_t __glibc_reserved2; 40 | }; 41 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc-perm.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc-perm.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _SYS_IPC_H 19 | # error "Never use directly; include instead." 20 | #endif 21 | 22 | #include 23 | 24 | /* Mode bits for `msgget', `semget', and `shmget'. */ 25 | #define IPC_CREAT 01000 /* Create key if key does not exist. */ 26 | #define IPC_EXCL 02000 /* Fail if key exists. */ 27 | #define IPC_NOWAIT 04000 /* Return error on wait. */ 28 | 29 | /* Control commands for `msgctl', `semctl', and `shmctl'. */ 30 | #define IPC_RMID 0 /* Remove identifier. */ 31 | #define IPC_SET 1 /* Set `ipc_perm' options. */ 32 | #define IPC_STAT 2 /* Get `ipc_perm' options. */ 33 | #ifdef __USE_GNU 34 | # define IPC_INFO 3 /* See ipcs. */ 35 | #endif 36 | 37 | /* Special key values. */ 38 | #define IPC_PRIVATE ((__key_t) 0) /* Private key. */ 39 | 40 | #include 41 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipc.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipctypes.h: -------------------------------------------------------------------------------- 1 | /* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. 2 | Copyright (C) 2012-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _SYS_IPC_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | #ifndef _BITS_IPCTYPES_H 24 | #define _BITS_IPCTYPES_H 1 25 | 26 | /* Used in `struct shmid_ds'. */ 27 | # ifdef __x86_64__ 28 | typedef int __ipc_pid_t; 29 | # else 30 | typedef unsigned short int __ipc_pid_t; 31 | # endif 32 | 33 | #endif /* bits/ipctypes.h */ 34 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipctypes.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@ipctypes.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@libc-header-start.h: -------------------------------------------------------------------------------- 1 | /* Handle feature test macros at the start of a header. 2 | Copyright (C) 2016-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | /* This header is internal to glibc and should not be included outside 20 | of glibc headers. Headers including it must define 21 | __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 22 | cannot have multiple include guards because ISO C feature test 23 | macros depend on the definition of the macro when an affected 24 | header is included, not when the first system header is 25 | included. */ 26 | 27 | #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 28 | # error "Never include directly." 29 | #endif 30 | 31 | #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 32 | 33 | #include 34 | 35 | /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 36 | macro. */ 37 | #undef __GLIBC_USE_LIB_EXT2 38 | #if (defined __USE_GNU \ 39 | || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) 40 | # define __GLIBC_USE_LIB_EXT2 1 41 | #else 42 | # define __GLIBC_USE_LIB_EXT2 0 43 | #endif 44 | 45 | /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 46 | macro. Most but not all symbols enabled by that macro in TS 47 | 18661-1 are enabled unconditionally in C2X; the symbols in Annex F 48 | still require that macro in C2X. */ 49 | #undef __GLIBC_USE_IEC_60559_BFP_EXT 50 | #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ 51 | # define __GLIBC_USE_IEC_60559_BFP_EXT 1 52 | #else 53 | # define __GLIBC_USE_IEC_60559_BFP_EXT 0 54 | #endif 55 | #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 56 | #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X) 57 | # define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 58 | #else 59 | # define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0 60 | #endif 61 | 62 | /* ISO/IEC TS 18661-4:2015 defines the 63 | __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 64 | functions, the symbols from this TS are enabled unconditionally in 65 | C2X. */ 66 | #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 67 | #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ 68 | # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 69 | #else 70 | # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 71 | #endif 72 | #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 73 | #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X) 74 | # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 75 | #else 76 | # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0 77 | #endif 78 | 79 | /* ISO/IEC TS 18661-3:2015 defines the 80 | __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ 81 | #undef __GLIBC_USE_IEC_60559_TYPES_EXT 82 | #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ 83 | # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 84 | #else 85 | # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 86 | #endif 87 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@libc-header-start.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@libc-header-start.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@long-double.h: -------------------------------------------------------------------------------- 1 | /* Properties of long double type. ldbl-96 version. 2 | Copyright (C) 2016-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | /* long double is distinct from double, so there is nothing to 20 | define here. */ 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 22 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@long-double.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@long-double.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@msq.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _SYS_MSG_H 19 | # error "Never use directly; include instead." 20 | #endif 21 | 22 | #include 23 | 24 | /* Types used in the MSQID_DS structure definition. */ 25 | typedef __syscall_ulong_t msgqnum_t; 26 | typedef __syscall_ulong_t msglen_t; 27 | 28 | #include 29 | 30 | /* Define options for message queue functions. */ 31 | #define MSG_NOERROR 010000 /* no error if message is too big */ 32 | #ifdef __USE_GNU 33 | # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ 34 | # define MSG_COPY 040000 /* copy (not remove) all queue messages */ 35 | #endif 36 | 37 | #ifdef __USE_MISC 38 | 39 | # define msg_cbytes __msg_cbytes 40 | 41 | /* ipcs ctl commands */ 42 | # define MSG_STAT 11 43 | # define MSG_INFO 12 44 | # define MSG_STAT_ANY 13 45 | 46 | /* buffer for msgctl calls IPC_INFO, MSG_INFO */ 47 | struct msginfo 48 | { 49 | int msgpool; 50 | int msgmap; 51 | int msgmax; 52 | int msgmnb; 53 | int msgmni; 54 | int msgssz; 55 | int msgtql; 56 | unsigned short int msgseg; 57 | }; 58 | 59 | #endif /* __USE_MISC */ 60 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@msq.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@msq.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@posix_opt.h: -------------------------------------------------------------------------------- 1 | /* Define POSIX options for Linux. 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public License as 7 | published by the Free Software Foundation; either version 2.1 of the 8 | License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; see the file COPYING.LIB. If 17 | not, see . */ 18 | 19 | #ifndef _BITS_POSIX_OPT_H 20 | #define _BITS_POSIX_OPT_H 1 21 | 22 | /* Job control is supported. */ 23 | #define _POSIX_JOB_CONTROL 1 24 | 25 | /* Processes have a saved set-user-ID and a saved set-group-ID. */ 26 | #define _POSIX_SAVED_IDS 1 27 | 28 | /* Priority scheduling is not supported with the correct semantics, 29 | but GNU/Linux applications expect that the corresponding interfaces 30 | are available, even though the semantics do not meet the POSIX 31 | requirements. See glibc bug 14829. */ 32 | #define _POSIX_PRIORITY_SCHEDULING 200809L 33 | 34 | /* Synchronizing file data is supported. */ 35 | #define _POSIX_SYNCHRONIZED_IO 200809L 36 | 37 | /* The fsync function is present. */ 38 | #define _POSIX_FSYNC 200809L 39 | 40 | /* Mapping of files to memory is supported. */ 41 | #define _POSIX_MAPPED_FILES 200809L 42 | 43 | /* Locking of all memory is supported. */ 44 | #define _POSIX_MEMLOCK 200809L 45 | 46 | /* Locking of ranges of memory is supported. */ 47 | #define _POSIX_MEMLOCK_RANGE 200809L 48 | 49 | /* Setting of memory protections is supported. */ 50 | #define _POSIX_MEMORY_PROTECTION 200809L 51 | 52 | /* Some filesystems allow all users to change file ownership. */ 53 | #define _POSIX_CHOWN_RESTRICTED 0 54 | 55 | /* `c_cc' member of 'struct termios' structure can be disabled by 56 | using the value _POSIX_VDISABLE. */ 57 | #define _POSIX_VDISABLE '\0' 58 | 59 | /* Filenames are not silently truncated. */ 60 | #define _POSIX_NO_TRUNC 1 61 | 62 | /* X/Open realtime support is available. */ 63 | #define _XOPEN_REALTIME 1 64 | 65 | /* X/Open thread realtime support is available. */ 66 | #define _XOPEN_REALTIME_THREADS 1 67 | 68 | /* XPG4.2 shared memory is supported. */ 69 | #define _XOPEN_SHM 1 70 | 71 | /* Tell we have POSIX threads. */ 72 | #define _POSIX_THREADS 200809L 73 | 74 | /* We have the reentrant functions described in POSIX. */ 75 | #define _POSIX_REENTRANT_FUNCTIONS 1 76 | #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L 77 | 78 | /* We provide priority scheduling for threads. */ 79 | #define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L 80 | 81 | /* We support user-defined stack sizes. */ 82 | #define _POSIX_THREAD_ATTR_STACKSIZE 200809L 83 | 84 | /* We support user-defined stacks. */ 85 | #define _POSIX_THREAD_ATTR_STACKADDR 200809L 86 | 87 | /* We support priority inheritence. */ 88 | #define _POSIX_THREAD_PRIO_INHERIT 200809L 89 | 90 | /* We support priority protection, though only for non-robust 91 | mutexes. */ 92 | #define _POSIX_THREAD_PRIO_PROTECT 200809L 93 | 94 | #ifdef __USE_XOPEN2K8 95 | /* We support priority inheritence for robust mutexes. */ 96 | # define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L 97 | 98 | /* We do not support priority protection for robust mutexes. */ 99 | # define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1 100 | #endif 101 | 102 | /* We support POSIX.1b semaphores. */ 103 | #define _POSIX_SEMAPHORES 200809L 104 | 105 | /* Real-time signals are supported. */ 106 | #define _POSIX_REALTIME_SIGNALS 200809L 107 | 108 | /* We support asynchronous I/O. */ 109 | #define _POSIX_ASYNCHRONOUS_IO 200809L 110 | #define _POSIX_ASYNC_IO 1 111 | /* Alternative name for Unix98. */ 112 | #define _LFS_ASYNCHRONOUS_IO 1 113 | /* Support for prioritization is also available. */ 114 | #define _POSIX_PRIORITIZED_IO 200809L 115 | 116 | /* The LFS support in asynchronous I/O is also available. */ 117 | #define _LFS64_ASYNCHRONOUS_IO 1 118 | 119 | /* The rest of the LFS is also available. */ 120 | #define _LFS_LARGEFILE 1 121 | #define _LFS64_LARGEFILE 1 122 | #define _LFS64_STDIO 1 123 | 124 | /* POSIX shared memory objects are implemented. */ 125 | #define _POSIX_SHARED_MEMORY_OBJECTS 200809L 126 | 127 | /* CPU-time clocks support needs to be checked at runtime. */ 128 | #define _POSIX_CPUTIME 0 129 | 130 | /* Clock support in threads must be also checked at runtime. */ 131 | #define _POSIX_THREAD_CPUTIME 0 132 | 133 | /* GNU libc provides regular expression handling. */ 134 | #define _POSIX_REGEXP 1 135 | 136 | /* Reader/Writer locks are available. */ 137 | #define _POSIX_READER_WRITER_LOCKS 200809L 138 | 139 | /* We have a POSIX shell. */ 140 | #define _POSIX_SHELL 1 141 | 142 | /* We support the Timeouts option. */ 143 | #define _POSIX_TIMEOUTS 200809L 144 | 145 | /* We support spinlocks. */ 146 | #define _POSIX_SPIN_LOCKS 200809L 147 | 148 | /* The `spawn' function family is supported. */ 149 | #define _POSIX_SPAWN 200809L 150 | 151 | /* We have POSIX timers. */ 152 | #define _POSIX_TIMERS 200809L 153 | 154 | /* The barrier functions are available. */ 155 | #define _POSIX_BARRIERS 200809L 156 | 157 | /* POSIX message queues are available. */ 158 | #define _POSIX_MESSAGE_PASSING 200809L 159 | 160 | /* Thread process-shared synchronization is supported. */ 161 | #define _POSIX_THREAD_PROCESS_SHARED 200809L 162 | 163 | /* The monotonic clock might be available. */ 164 | #define _POSIX_MONOTONIC_CLOCK 0 165 | 166 | /* The clock selection interfaces are available. */ 167 | #define _POSIX_CLOCK_SELECTION 200809L 168 | 169 | /* Advisory information interfaces are available. */ 170 | #define _POSIX_ADVISORY_INFO 200809L 171 | 172 | /* IPv6 support is available. */ 173 | #define _POSIX_IPV6 200809L 174 | 175 | /* Raw socket support is available. */ 176 | #define _POSIX_RAW_SOCKETS 200809L 177 | 178 | /* We have at least one terminal. */ 179 | #define _POSIX2_CHAR_TERM 200809L 180 | 181 | /* Neither process nor thread sporadic server interfaces is available. */ 182 | #define _POSIX_SPORADIC_SERVER -1 183 | #define _POSIX_THREAD_SPORADIC_SERVER -1 184 | 185 | /* trace.h is not available. */ 186 | #define _POSIX_TRACE -1 187 | #define _POSIX_TRACE_EVENT_FILTER -1 188 | #define _POSIX_TRACE_INHERIT -1 189 | #define _POSIX_TRACE_LOG -1 190 | 191 | /* Typed memory objects are not available. */ 192 | #define _POSIX_TYPED_MEMORY_OBJECTS -1 193 | 194 | #endif /* bits/posix_opt.h */ 195 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@posix_opt.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@posix_opt.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes-arch.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _BITS_PTHREADTYPES_ARCH_H 19 | #define _BITS_PTHREADTYPES_ARCH_H 1 20 | 21 | #include 22 | 23 | #ifdef __x86_64__ 24 | # if __WORDSIZE == 64 25 | # define __SIZEOF_PTHREAD_MUTEX_T 40 26 | # define __SIZEOF_PTHREAD_ATTR_T 56 27 | # define __SIZEOF_PTHREAD_RWLOCK_T 56 28 | # define __SIZEOF_PTHREAD_BARRIER_T 32 29 | # else 30 | # define __SIZEOF_PTHREAD_MUTEX_T 32 31 | # define __SIZEOF_PTHREAD_ATTR_T 32 32 | # define __SIZEOF_PTHREAD_RWLOCK_T 44 33 | # define __SIZEOF_PTHREAD_BARRIER_T 20 34 | # endif 35 | #else 36 | # define __SIZEOF_PTHREAD_MUTEX_T 24 37 | # define __SIZEOF_PTHREAD_ATTR_T 36 38 | # define __SIZEOF_PTHREAD_RWLOCK_T 32 39 | # define __SIZEOF_PTHREAD_BARRIER_T 20 40 | #endif 41 | #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 42 | #define __SIZEOF_PTHREAD_COND_T 48 43 | #define __SIZEOF_PTHREAD_CONDATTR_T 4 44 | #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 45 | #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 46 | 47 | #define __LOCK_ALIGNMENT 48 | #define __ONCE_ALIGNMENT 49 | 50 | #ifndef __x86_64__ 51 | /* Extra attributes for the cleanup functions. */ 52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) 53 | #endif 54 | 55 | #endif /* bits/pthreadtypes.h */ 56 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes-arch.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes-arch.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes.h: -------------------------------------------------------------------------------- 1 | /* Declaration of common pthread types for all architectures. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_PTHREADTYPES_COMMON_H 20 | # define _BITS_PTHREADTYPES_COMMON_H 1 21 | 22 | /* For internal mutex and condition variable definitions. */ 23 | #include 24 | 25 | /* Thread identifiers. The structure of the attribute type is not 26 | exposed on purpose. */ 27 | typedef unsigned long int pthread_t; 28 | 29 | 30 | /* Data structures for mutex handling. The structure of the attribute 31 | type is not exposed on purpose. */ 32 | typedef union 33 | { 34 | char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; 35 | int __align; 36 | } pthread_mutexattr_t; 37 | 38 | 39 | /* Data structure for condition variable handling. The structure of 40 | the attribute type is not exposed on purpose. */ 41 | typedef union 42 | { 43 | char __size[__SIZEOF_PTHREAD_CONDATTR_T]; 44 | int __align; 45 | } pthread_condattr_t; 46 | 47 | 48 | /* Keys for thread-specific data */ 49 | typedef unsigned int pthread_key_t; 50 | 51 | 52 | /* Once-only execution */ 53 | typedef int __ONCE_ALIGNMENT pthread_once_t; 54 | 55 | 56 | union pthread_attr_t 57 | { 58 | char __size[__SIZEOF_PTHREAD_ATTR_T]; 59 | long int __align; 60 | }; 61 | #ifndef __have_pthread_attr_t 62 | typedef union pthread_attr_t pthread_attr_t; 63 | # define __have_pthread_attr_t 1 64 | #endif 65 | 66 | 67 | typedef union 68 | { 69 | struct __pthread_mutex_s __data; 70 | char __size[__SIZEOF_PTHREAD_MUTEX_T]; 71 | long int __align; 72 | } pthread_mutex_t; 73 | 74 | 75 | typedef union 76 | { 77 | struct __pthread_cond_s __data; 78 | char __size[__SIZEOF_PTHREAD_COND_T]; 79 | __extension__ long long int __align; 80 | } pthread_cond_t; 81 | 82 | 83 | #if defined __USE_UNIX98 || defined __USE_XOPEN2K 84 | /* Data structure for reader-writer lock variable handling. The 85 | structure of the attribute type is deliberately not exposed. */ 86 | typedef union 87 | { 88 | struct __pthread_rwlock_arch_t __data; 89 | char __size[__SIZEOF_PTHREAD_RWLOCK_T]; 90 | long int __align; 91 | } pthread_rwlock_t; 92 | 93 | typedef union 94 | { 95 | char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; 96 | long int __align; 97 | } pthread_rwlockattr_t; 98 | #endif 99 | 100 | 101 | #ifdef __USE_XOPEN2K 102 | /* POSIX spinlock data type. */ 103 | typedef volatile int pthread_spinlock_t; 104 | 105 | 106 | /* POSIX barriers data type. The structure of the type is 107 | deliberately not exposed. */ 108 | typedef union 109 | { 110 | char __size[__SIZEOF_PTHREAD_BARRIER_T]; 111 | long int __align; 112 | } pthread_barrier_t; 113 | 114 | typedef union 115 | { 116 | char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; 117 | int __align; 118 | } pthread_barrierattr_t; 119 | #endif 120 | 121 | #endif 122 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@pthreadtypes.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@select.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1997-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _SYS_SELECT_H 19 | # error "Never use directly; include instead." 20 | #endif 21 | 22 | 23 | /* We don't use `memset' because this would require a prototype and 24 | the array isn't too big. */ 25 | #define __FD_ZERO(s) \ 26 | do { \ 27 | unsigned int __i; \ 28 | fd_set *__arr = (s); \ 29 | for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ 30 | __FDS_BITS (__arr)[__i] = 0; \ 31 | } while (0) 32 | #define __FD_SET(d, s) \ 33 | ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d))) 34 | #define __FD_CLR(d, s) \ 35 | ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d))) 36 | #define __FD_ISSET(d, s) \ 37 | ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0) 38 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@select.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@select.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stat.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1999-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #if !defined _SYS_STAT_H && !defined _FCNTL_H 19 | # error "Never include directly; use instead." 20 | #endif 21 | 22 | #ifndef _BITS_STAT_H 23 | #define _BITS_STAT_H 1 24 | 25 | /* Versions of the `struct stat' data structure. */ 26 | #ifndef __x86_64__ 27 | # define _STAT_VER_LINUX_OLD 1 28 | # define _STAT_VER_KERNEL 1 29 | # define _STAT_VER_SVR4 2 30 | # define _STAT_VER_LINUX 3 31 | 32 | /* i386 versions of the `xmknod' interface. */ 33 | # define _MKNOD_VER_LINUX 1 34 | # define _MKNOD_VER_SVR4 2 35 | # define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */ 36 | #else 37 | # define _STAT_VER_KERNEL 0 38 | # define _STAT_VER_LINUX 1 39 | 40 | /* x86-64 versions of the `xmknod' interface. */ 41 | # define _MKNOD_VER_LINUX 0 42 | #endif 43 | 44 | #define _STAT_VER _STAT_VER_LINUX 45 | 46 | struct stat 47 | { 48 | __dev_t st_dev; /* Device. */ 49 | #ifndef __x86_64__ 50 | unsigned short int __pad1; 51 | #endif 52 | #if defined __x86_64__ || !defined __USE_FILE_OFFSET64 53 | __ino_t st_ino; /* File serial number. */ 54 | #else 55 | __ino_t __st_ino; /* 32bit file serial number. */ 56 | #endif 57 | #ifndef __x86_64__ 58 | __mode_t st_mode; /* File mode. */ 59 | __nlink_t st_nlink; /* Link count. */ 60 | #else 61 | __nlink_t st_nlink; /* Link count. */ 62 | __mode_t st_mode; /* File mode. */ 63 | #endif 64 | __uid_t st_uid; /* User ID of the file's owner. */ 65 | __gid_t st_gid; /* Group ID of the file's group.*/ 66 | #ifdef __x86_64__ 67 | int __pad0; 68 | #endif 69 | __dev_t st_rdev; /* Device number, if device. */ 70 | #ifndef __x86_64__ 71 | unsigned short int __pad2; 72 | #endif 73 | #if defined __x86_64__ || !defined __USE_FILE_OFFSET64 74 | __off_t st_size; /* Size of file, in bytes. */ 75 | #else 76 | __off64_t st_size; /* Size of file, in bytes. */ 77 | #endif 78 | __blksize_t st_blksize; /* Optimal block size for I/O. */ 79 | #if defined __x86_64__ || !defined __USE_FILE_OFFSET64 80 | __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ 81 | #else 82 | __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ 83 | #endif 84 | #ifdef __USE_XOPEN2K8 85 | /* Nanosecond resolution timestamps are stored in a format 86 | equivalent to 'struct timespec'. This is the type used 87 | whenever possible but the Unix namespace rules do not allow the 88 | identifier 'timespec' to appear in the header. 89 | Therefore we have to handle the use of this header in strictly 90 | standard-compliant sources special. */ 91 | struct timespec st_atim; /* Time of last access. */ 92 | struct timespec st_mtim; /* Time of last modification. */ 93 | struct timespec st_ctim; /* Time of last status change. */ 94 | # define st_atime st_atim.tv_sec /* Backward compatibility. */ 95 | # define st_mtime st_mtim.tv_sec 96 | # define st_ctime st_ctim.tv_sec 97 | #else 98 | __time_t st_atime; /* Time of last access. */ 99 | __syscall_ulong_t st_atimensec; /* Nscecs of last access. */ 100 | __time_t st_mtime; /* Time of last modification. */ 101 | __syscall_ulong_t st_mtimensec; /* Nsecs of last modification. */ 102 | __time_t st_ctime; /* Time of last status change. */ 103 | __syscall_ulong_t st_ctimensec; /* Nsecs of last status change. */ 104 | #endif 105 | #ifdef __x86_64__ 106 | __syscall_slong_t __glibc_reserved[3]; 107 | #else 108 | # ifndef __USE_FILE_OFFSET64 109 | unsigned long int __glibc_reserved4; 110 | unsigned long int __glibc_reserved5; 111 | # else 112 | __ino64_t st_ino; /* File serial number. */ 113 | # endif 114 | #endif 115 | }; 116 | 117 | #ifdef __USE_LARGEFILE64 118 | /* Note stat64 has the same shape as stat for x86-64. */ 119 | struct stat64 120 | { 121 | __dev_t st_dev; /* Device. */ 122 | # ifdef __x86_64__ 123 | __ino64_t st_ino; /* File serial number. */ 124 | __nlink_t st_nlink; /* Link count. */ 125 | __mode_t st_mode; /* File mode. */ 126 | # else 127 | unsigned int __pad1; 128 | __ino_t __st_ino; /* 32bit file serial number. */ 129 | __mode_t st_mode; /* File mode. */ 130 | __nlink_t st_nlink; /* Link count. */ 131 | # endif 132 | __uid_t st_uid; /* User ID of the file's owner. */ 133 | __gid_t st_gid; /* Group ID of the file's group.*/ 134 | # ifdef __x86_64__ 135 | int __pad0; 136 | __dev_t st_rdev; /* Device number, if device. */ 137 | __off_t st_size; /* Size of file, in bytes. */ 138 | # else 139 | __dev_t st_rdev; /* Device number, if device. */ 140 | unsigned int __pad2; 141 | __off64_t st_size; /* Size of file, in bytes. */ 142 | # endif 143 | __blksize_t st_blksize; /* Optimal block size for I/O. */ 144 | __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */ 145 | # ifdef __USE_XOPEN2K8 146 | /* Nanosecond resolution timestamps are stored in a format 147 | equivalent to 'struct timespec'. This is the type used 148 | whenever possible but the Unix namespace rules do not allow the 149 | identifier 'timespec' to appear in the header. 150 | Therefore we have to handle the use of this header in strictly 151 | standard-compliant sources special. */ 152 | struct timespec st_atim; /* Time of last access. */ 153 | struct timespec st_mtim; /* Time of last modification. */ 154 | struct timespec st_ctim; /* Time of last status change. */ 155 | # else 156 | __time_t st_atime; /* Time of last access. */ 157 | __syscall_ulong_t st_atimensec; /* Nscecs of last access. */ 158 | __time_t st_mtime; /* Time of last modification. */ 159 | __syscall_ulong_t st_mtimensec; /* Nsecs of last modification. */ 160 | __time_t st_ctime; /* Time of last status change. */ 161 | __syscall_ulong_t st_ctimensec; /* Nsecs of last status change. */ 162 | # endif 163 | # ifdef __x86_64__ 164 | __syscall_slong_t __glibc_reserved[3]; 165 | # else 166 | __ino64_t st_ino; /* File serial number. */ 167 | # endif 168 | }; 169 | #endif 170 | 171 | /* Tell code we have these members. */ 172 | #define _STATBUF_ST_BLKSIZE 173 | #define _STATBUF_ST_RDEV 174 | /* Nanosecond resolution time values are supported. */ 175 | #define _STATBUF_ST_NSEC 176 | 177 | /* Encoding of the file mode. */ 178 | 179 | #define __S_IFMT 0170000 /* These bits determine file type. */ 180 | 181 | /* File types. */ 182 | #define __S_IFDIR 0040000 /* Directory. */ 183 | #define __S_IFCHR 0020000 /* Character device. */ 184 | #define __S_IFBLK 0060000 /* Block device. */ 185 | #define __S_IFREG 0100000 /* Regular file. */ 186 | #define __S_IFIFO 0010000 /* FIFO. */ 187 | #define __S_IFLNK 0120000 /* Symbolic link. */ 188 | #define __S_IFSOCK 0140000 /* Socket. */ 189 | 190 | /* POSIX.1b objects. Note that these macros always evaluate to zero. But 191 | they do it by enforcing the correct use of the macros. */ 192 | #define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) 193 | #define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) 194 | #define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) 195 | 196 | /* Protection bits. */ 197 | 198 | #define __S_ISUID 04000 /* Set user ID on execution. */ 199 | #define __S_ISGID 02000 /* Set group ID on execution. */ 200 | #define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ 201 | #define __S_IREAD 0400 /* Read by owner. */ 202 | #define __S_IWRITE 0200 /* Write by owner. */ 203 | #define __S_IEXEC 0100 /* Execute by owner. */ 204 | 205 | #ifdef __USE_ATFILE 206 | # define UTIME_NOW ((1l << 30) - 1l) 207 | # define UTIME_OMIT ((1l << 30) - 2l) 208 | #endif 209 | 210 | #endif /* bits/stat.h */ 211 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stat.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stat.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdint-intn.h: -------------------------------------------------------------------------------- 1 | /* Define intN_t types. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_STDINT_INTN_H 20 | #define _BITS_STDINT_INTN_H 1 21 | 22 | #include 23 | 24 | typedef __int8_t int8_t; 25 | typedef __int16_t int16_t; 26 | typedef __int32_t int32_t; 27 | typedef __int64_t int64_t; 28 | 29 | #endif /* bits/stdint-intn.h */ 30 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdint-intn.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdint-intn.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdio_lim.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1994-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _BITS_STDIO_LIM_H 19 | #define _BITS_STDIO_LIM_H 1 20 | 21 | #ifndef _STDIO_H 22 | # error "Never include directly; use instead." 23 | #endif 24 | 25 | #define L_tmpnam 20 26 | #define TMP_MAX 238328 27 | #define FILENAME_MAX 4096 28 | 29 | #ifdef __USE_POSIX 30 | # define L_ctermid 9 31 | # if !defined __USE_XOPEN2K || defined __USE_GNU 32 | # define L_cuserid 9 33 | # endif 34 | #endif 35 | 36 | #undef FOPEN_MAX 37 | #define FOPEN_MAX 16 38 | 39 | #endif /* bits/stdio_lim.h */ 40 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdio_lim.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdio_lim.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdlib-float.h: -------------------------------------------------------------------------------- 1 | /* Floating-point inline functions for stdlib.h. 2 | Copyright (C) 2012-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _STDLIB_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | #ifdef __USE_EXTERN_INLINES 24 | __extern_inline double 25 | __NTH (atof (const char *__nptr)) 26 | { 27 | return strtod (__nptr, (char **) NULL); 28 | } 29 | #endif /* Optimizing and Inlining. */ 30 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdlib-float.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@stdlib-float.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_mutex.h: -------------------------------------------------------------------------------- 1 | /* x86 internal mutex struct definitions. 2 | Copyright (C) 2019-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _THREAD_MUTEX_INTERNAL_H 20 | #define _THREAD_MUTEX_INTERNAL_H 1 21 | 22 | struct __pthread_mutex_s 23 | { 24 | int __lock; 25 | unsigned int __count; 26 | int __owner; 27 | #ifdef __x86_64__ 28 | unsigned int __nusers; 29 | #endif 30 | /* KIND must stay at this position in the structure to maintain 31 | binary compatibility with static initializers. */ 32 | int __kind; 33 | #ifdef __x86_64__ 34 | short __spins; 35 | short __elision; 36 | __pthread_list_t __list; 37 | # define __PTHREAD_MUTEX_HAVE_PREV 1 38 | #else 39 | unsigned int __nusers; 40 | __extension__ union 41 | { 42 | struct 43 | { 44 | short __espins; 45 | short __eelision; 46 | # define __spins __elision_data.__espins 47 | # define __elision __elision_data.__eelision 48 | } __elision_data; 49 | __pthread_slist_t __list; 50 | }; 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 52 | #endif 53 | }; 54 | 55 | #ifdef __x86_64__ 56 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ 57 | 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } 58 | #else 59 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ 60 | 0, 0, 0, __kind, 0, { { 0, 0 } } 61 | #endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_mutex.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_mutex.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_rwlock.h: -------------------------------------------------------------------------------- 1 | /* x86 internal rwlock struct definitions. 2 | Copyright (C) 2019-2020 Free Software Foundation, Inc. 3 | 4 | This file is part of the GNU C Library. 5 | 6 | The GNU C Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Lesser General Public 8 | License as published by the Free Software Foundation; either 9 | version 2.1 of the License, or (at your option) any later version. 10 | 11 | The GNU C Library is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | Lesser General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public 17 | License along with the GNU C Library; if not, see 18 | . */ 19 | 20 | #ifndef _RWLOCK_INTERNAL_H 21 | #define _RWLOCK_INTERNAL_H 22 | 23 | struct __pthread_rwlock_arch_t 24 | { 25 | unsigned int __readers; 26 | unsigned int __writers; 27 | unsigned int __wrphase_futex; 28 | unsigned int __writers_futex; 29 | unsigned int __pad3; 30 | unsigned int __pad4; 31 | #ifdef __x86_64__ 32 | int __cur_writer; 33 | int __shared; 34 | signed char __rwelision; 35 | # ifdef __ILP32__ 36 | unsigned char __pad1[3]; 37 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } 38 | # else 39 | unsigned char __pad1[7]; 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } 41 | # endif 42 | unsigned long int __pad2; 43 | /* FLAGS must stay at this position in the structure to maintain 44 | binary compatibility. */ 45 | unsigned int __flags; 46 | #else /* __x86_64__ */ 47 | /* FLAGS must stay at this position in the structure to maintain 48 | binary compatibility. */ 49 | unsigned char __flags; 50 | unsigned char __shared; 51 | signed char __rwelision; 52 | unsigned char __pad2; 53 | int __cur_writer; 54 | #endif 55 | }; 56 | 57 | #ifdef __x86_64__ 58 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 59 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags 60 | #else 61 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 62 | 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_rwlock.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@struct_rwlock.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@thread-shared-types.h: -------------------------------------------------------------------------------- 1 | /* Common threading primitives definitions for both POSIX and C11. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _THREAD_SHARED_TYPES_H 20 | #define _THREAD_SHARED_TYPES_H 1 21 | 22 | /* Arch-specific definitions. Each architecture must define the following 23 | macros to define the expected sizes of pthread data types: 24 | 25 | __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 26 | __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 27 | __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 28 | __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 29 | __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 30 | __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 31 | __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 32 | __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 33 | __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 34 | 35 | The additional macro defines any constraint for the lock alignment 36 | inside the thread structures: 37 | 38 | __LOCK_ALIGNMENT - for internal lock/futex usage. 39 | 40 | Same idea but for the once locking primitive: 41 | 42 | __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */ 43 | 44 | #include 45 | 46 | 47 | /* Common definition of pthread_mutex_t. */ 48 | 49 | typedef struct __pthread_internal_list 50 | { 51 | struct __pthread_internal_list *__prev; 52 | struct __pthread_internal_list *__next; 53 | } __pthread_list_t; 54 | 55 | typedef struct __pthread_internal_slist 56 | { 57 | struct __pthread_internal_slist *__next; 58 | } __pthread_slist_t; 59 | 60 | /* Arch-specific mutex definitions. A generic implementation is provided 61 | by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 62 | can override it by defining: 63 | 64 | 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 65 | definition). It should contains at least the internal members 66 | defined in the generic version. 67 | 68 | 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 69 | atomic operations. 70 | 71 | 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 72 | It should initialize the mutex internal flag. */ 73 | 74 | #include 75 | 76 | /* Arch-sepecific read-write lock definitions. A generic implementation is 77 | provided by struct_rwlock.h. If required, an architecture can override it 78 | by defining: 79 | 80 | 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 81 | It should contain at least the internal members defined in the 82 | generic version. 83 | 84 | 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 85 | It should initialize the rwlock internal type. */ 86 | 87 | #include 88 | 89 | 90 | /* Common definition of pthread_cond_t. */ 91 | 92 | struct __pthread_cond_s 93 | { 94 | __extension__ union 95 | { 96 | __extension__ unsigned long long int __wseq; 97 | struct 98 | { 99 | unsigned int __low; 100 | unsigned int __high; 101 | } __wseq32; 102 | }; 103 | __extension__ union 104 | { 105 | __extension__ unsigned long long int __g1_start; 106 | struct 107 | { 108 | unsigned int __low; 109 | unsigned int __high; 110 | } __g1_start32; 111 | }; 112 | unsigned int __g_refs[2] __LOCK_ALIGNMENT; 113 | unsigned int __g_size[2]; 114 | unsigned int __g1_orig_size; 115 | unsigned int __wrefs; 116 | unsigned int __g_signals[2]; 117 | }; 118 | 119 | typedef unsigned int __tss_t; 120 | typedef unsigned long int __thrd_t; 121 | 122 | typedef struct 123 | { 124 | int __data __ONCE_ALIGNMENT; 125 | } __once_flag; 126 | 127 | #define __ONCE_FLAG_INIT { 0 } 128 | 129 | #endif /* _THREAD_SHARED_TYPES_H */ 130 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@thread-shared-types.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@thread-shared-types.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@time64.h: -------------------------------------------------------------------------------- 1 | /* bits/time64.h -- underlying types for __time64_t. Generic version. 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_TYPES_H 20 | # error "Never include directly; use instead." 21 | #endif 22 | 23 | #ifndef _BITS_TIME64_H 24 | #define _BITS_TIME64_H 1 25 | 26 | /* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ 27 | 28 | #if __TIMESIZE == 64 29 | /* If we already have 64-bit time type then use it. */ 30 | # define __TIME64_T_TYPE __TIME_T_TYPE 31 | #else 32 | /* Define a 64-bit time type alongsize the 32-bit one. */ 33 | # define __TIME64_T_TYPE __SQUAD_TYPE 34 | #endif 35 | 36 | #endif /* bits/time64.h */ 37 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@time64.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@time64.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@timesize.h: -------------------------------------------------------------------------------- 1 | /* Bit size of the time_t type at glibc build time, x86-64 and x32 case. 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #if defined __x86_64__ && defined __ILP32__ 20 | /* For x32, time is 64-bit even though word size is 32-bit. */ 21 | # define __TIMESIZE 64 22 | #else 23 | /* For others, time size is word size. */ 24 | # define __TIMESIZE __WORDSIZE 25 | #endif 26 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@timesize.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@timesize.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types.h: -------------------------------------------------------------------------------- 1 | /* bits/types.h -- definitions of __*_t types underlying *_t types. 2 | Copyright (C) 2002-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | /* 20 | * Never include this file directly; use instead. 21 | */ 22 | 23 | #ifndef _BITS_TYPES_H 24 | #define _BITS_TYPES_H 1 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | /* Convenience types. */ 31 | typedef unsigned char __u_char; 32 | typedef unsigned short int __u_short; 33 | typedef unsigned int __u_int; 34 | typedef unsigned long int __u_long; 35 | 36 | /* Fixed-size types, underlying types depend on word size and compiler. */ 37 | typedef signed char __int8_t; 38 | typedef unsigned char __uint8_t; 39 | typedef signed short int __int16_t; 40 | typedef unsigned short int __uint16_t; 41 | typedef signed int __int32_t; 42 | typedef unsigned int __uint32_t; 43 | #if __WORDSIZE == 64 44 | typedef signed long int __int64_t; 45 | typedef unsigned long int __uint64_t; 46 | #else 47 | __extension__ typedef signed long long int __int64_t; 48 | __extension__ typedef unsigned long long int __uint64_t; 49 | #endif 50 | 51 | /* Smallest types with at least a given width. */ 52 | typedef __int8_t __int_least8_t; 53 | typedef __uint8_t __uint_least8_t; 54 | typedef __int16_t __int_least16_t; 55 | typedef __uint16_t __uint_least16_t; 56 | typedef __int32_t __int_least32_t; 57 | typedef __uint32_t __uint_least32_t; 58 | typedef __int64_t __int_least64_t; 59 | typedef __uint64_t __uint_least64_t; 60 | 61 | /* quad_t is also 64 bits. */ 62 | #if __WORDSIZE == 64 63 | typedef long int __quad_t; 64 | typedef unsigned long int __u_quad_t; 65 | #else 66 | __extension__ typedef long long int __quad_t; 67 | __extension__ typedef unsigned long long int __u_quad_t; 68 | #endif 69 | 70 | /* Largest integral types. */ 71 | #if __WORDSIZE == 64 72 | typedef long int __intmax_t; 73 | typedef unsigned long int __uintmax_t; 74 | #else 75 | __extension__ typedef long long int __intmax_t; 76 | __extension__ typedef unsigned long long int __uintmax_t; 77 | #endif 78 | 79 | 80 | /* The machine-dependent file defines __*_T_TYPE 81 | macros for each of the OS types we define below. The definitions 82 | of those macros must use the following macros for underlying types. 83 | We define __S_TYPE and __U_TYPE for the signed and unsigned 84 | variants of each of the following integer types on this machine. 85 | 86 | 16 -- "natural" 16-bit type (always short) 87 | 32 -- "natural" 32-bit type (always int) 88 | 64 -- "natural" 64-bit type (long or long long) 89 | LONG32 -- 32-bit type, traditionally long 90 | QUAD -- 64-bit type, traditionally long long 91 | WORD -- natural type of __WORDSIZE bits (int or long) 92 | LONGWORD -- type of __WORDSIZE bits, traditionally long 93 | 94 | We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 95 | conventional uses of `long' or `long long' type modifiers match the 96 | types we define, even when a less-adorned type would be the same size. 97 | This matters for (somewhat) portably writing printf/scanf formats for 98 | these types, where using the appropriate l or ll format modifiers can 99 | make the typedefs and the formats match up across all GNU platforms. If 100 | we used `long' when it's 64 bits where `long long' is expected, then the 101 | compiler would warn about the formats not matching the argument types, 102 | and the programmer changing them to shut up the compiler would break the 103 | program's portability. 104 | 105 | Here we assume what is presently the case in all the GCC configurations 106 | we support: long long is always 64 bits, long is always word/address size, 107 | and int is always 32 bits. */ 108 | 109 | #define __S16_TYPE short int 110 | #define __U16_TYPE unsigned short int 111 | #define __S32_TYPE int 112 | #define __U32_TYPE unsigned int 113 | #define __SLONGWORD_TYPE long int 114 | #define __ULONGWORD_TYPE unsigned long int 115 | #if __WORDSIZE == 32 116 | # define __SQUAD_TYPE __int64_t 117 | # define __UQUAD_TYPE __uint64_t 118 | # define __SWORD_TYPE int 119 | # define __UWORD_TYPE unsigned int 120 | # define __SLONG32_TYPE long int 121 | # define __ULONG32_TYPE unsigned long int 122 | # define __S64_TYPE __int64_t 123 | # define __U64_TYPE __uint64_t 124 | /* We want __extension__ before typedef's that use nonstandard base types 125 | such as `long long' in C89 mode. */ 126 | # define __STD_TYPE __extension__ typedef 127 | #elif __WORDSIZE == 64 128 | # define __SQUAD_TYPE long int 129 | # define __UQUAD_TYPE unsigned long int 130 | # define __SWORD_TYPE long int 131 | # define __UWORD_TYPE unsigned long int 132 | # define __SLONG32_TYPE int 133 | # define __ULONG32_TYPE unsigned int 134 | # define __S64_TYPE long int 135 | # define __U64_TYPE unsigned long int 136 | /* No need to mark the typedef with __extension__. */ 137 | # define __STD_TYPE typedef 138 | #else 139 | # error 140 | #endif 141 | #include /* Defines __*_T_TYPE macros. */ 142 | #include /* Defines __TIME*_T_TYPE macros. */ 143 | 144 | 145 | __STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ 146 | __STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */ 147 | __STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */ 148 | __STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */ 149 | __STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/ 150 | __STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */ 151 | __STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */ 152 | __STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */ 153 | __STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */ 154 | __STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ 155 | __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ 156 | __STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */ 157 | __STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */ 158 | __STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */ 159 | __STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */ 160 | __STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ 161 | __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ 162 | __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ 163 | __STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t; 164 | 165 | __STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */ 166 | __STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */ 167 | 168 | /* Clock ID used in clock and timer functions. */ 169 | __STD_TYPE __CLOCKID_T_TYPE __clockid_t; 170 | 171 | /* Timer ID returned by `timer_create'. */ 172 | __STD_TYPE __TIMER_T_TYPE __timer_t; 173 | 174 | /* Type to represent block size. */ 175 | __STD_TYPE __BLKSIZE_T_TYPE __blksize_t; 176 | 177 | /* Types from the Large File Support interface. */ 178 | 179 | /* Type to count number of disk blocks. */ 180 | __STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; 181 | __STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t; 182 | 183 | /* Type to count file system blocks. */ 184 | __STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; 185 | __STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; 186 | 187 | /* Type to count file system nodes. */ 188 | __STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; 189 | __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; 190 | 191 | /* Type of miscellaneous file system fields. */ 192 | __STD_TYPE __FSWORD_T_TYPE __fsword_t; 193 | 194 | __STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */ 195 | 196 | /* Signed long type used in system calls. */ 197 | __STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t; 198 | /* Unsigned long type used in system calls. */ 199 | __STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t; 200 | 201 | /* These few don't really vary by system, they always correspond 202 | to one of the other defined types. */ 203 | typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ 204 | typedef char *__caddr_t; 205 | 206 | /* Duplicates info from stdint.h but this is used in unistd.h. */ 207 | __STD_TYPE __SWORD_TYPE __intptr_t; 208 | 209 | /* Duplicate info from sys/socket.h. */ 210 | __STD_TYPE __U32_TYPE __socklen_t; 211 | 212 | /* C99: An integer type that can be accessed as an atomic entity, 213 | even in the presence of asynchronous interrupts. 214 | It is not currently necessary for this to be machine-specific. */ 215 | typedef int __sig_atomic_t; 216 | 217 | /* Seconds since the Epoch, visible to user code when time_t is too 218 | narrow only for consistency with the old way of widening too-narrow 219 | types. User code should never use __time64_t. */ 220 | #if __TIMESIZE == 64 && defined __LIBC 221 | # define __time64_t __time_t 222 | #elif __TIMESIZE != 64 223 | __STD_TYPE __TIME64_T_TYPE __time64_t; 224 | #endif 225 | 226 | #undef __STD_TYPE 227 | 228 | #endif /* bits/types.h */ 229 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@FILE.h: -------------------------------------------------------------------------------- 1 | #ifndef __FILE_defined 2 | #define __FILE_defined 1 3 | 4 | struct _IO_FILE; 5 | 6 | /* The opaque type of streams. This is the definition used elsewhere. */ 7 | typedef struct _IO_FILE FILE; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@FILE.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@FILE.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__FILE.h: -------------------------------------------------------------------------------- 1 | #ifndef ____FILE_defined 2 | #define ____FILE_defined 1 3 | 4 | struct _IO_FILE; 5 | typedef struct _IO_FILE __FILE; 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__FILE.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__FILE.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos64_t.h: -------------------------------------------------------------------------------- 1 | #ifndef _____fpos64_t_defined 2 | #define _____fpos64_t_defined 1 3 | 4 | #include 5 | #include 6 | 7 | /* The tag name of this struct is _G_fpos64_t to preserve historic 8 | C++ mangled names for functions taking fpos_t and/or fpos64_t 9 | arguments. That name should not be used in new code. */ 10 | typedef struct _G_fpos64_t 11 | { 12 | __off64_t __pos; 13 | __mbstate_t __state; 14 | } __fpos64_t; 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos64_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos64_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos_t.h: -------------------------------------------------------------------------------- 1 | #ifndef _____fpos_t_defined 2 | #define _____fpos_t_defined 1 3 | 4 | #include 5 | #include 6 | 7 | /* The tag name of this struct is _G_fpos_t to preserve historic 8 | C++ mangled names for functions taking fpos_t arguments. 9 | That name should not be used in new code. */ 10 | typedef struct _G_fpos_t 11 | { 12 | __off_t __pos; 13 | __mbstate_t __state; 14 | } __fpos_t; 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__fpos_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__locale_t.h: -------------------------------------------------------------------------------- 1 | /* Definition of struct __locale_struct and __locale_t. 2 | Copyright (C) 1997-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | Contributed by Ulrich Drepper , 1997. 5 | 6 | The GNU C Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Lesser General Public 8 | License as published by the Free Software Foundation; either 9 | version 2.1 of the License, or (at your option) any later version. 10 | 11 | The GNU C Library is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | Lesser General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public 17 | License along with the GNU C Library; if not, see 18 | . */ 19 | 20 | #ifndef _BITS_TYPES___LOCALE_T_H 21 | #define _BITS_TYPES___LOCALE_T_H 1 22 | 23 | /* POSIX.1-2008: the locale_t type, representing a locale context 24 | (implementation-namespace version). This type should be treated 25 | as opaque by applications; some details are exposed for the sake of 26 | efficiency in e.g. ctype functions. */ 27 | 28 | struct __locale_struct 29 | { 30 | /* Note: LC_ALL is not a valid index into this array. */ 31 | struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ 32 | 33 | /* To increase the speed of this solution we add some special members. */ 34 | const unsigned short int *__ctype_b; 35 | const int *__ctype_tolower; 36 | const int *__ctype_toupper; 37 | 38 | /* Note: LC_ALL is not a valid index into this array. */ 39 | const char *__names[13]; 40 | }; 41 | 42 | typedef struct __locale_struct *__locale_t; 43 | 44 | #endif /* bits/types/__locale_t.h */ 45 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__locale_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__locale_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__mbstate_t.h: -------------------------------------------------------------------------------- 1 | #ifndef ____mbstate_t_defined 2 | #define ____mbstate_t_defined 1 3 | 4 | /* Integral type unchanged by default argument promotions that can 5 | hold any value corresponding to members of the extended character 6 | set, as well as at least one value that does not correspond to any 7 | member of the extended character set. */ 8 | #ifndef __WINT_TYPE__ 9 | # define __WINT_TYPE__ unsigned int 10 | #endif 11 | 12 | /* Conversion state information. */ 13 | typedef struct 14 | { 15 | int __count; 16 | union 17 | { 18 | __WINT_TYPE__ __wch; 19 | char __wchb[4]; 20 | } __value; /* Value so far. */ 21 | } __mbstate_t; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__mbstate_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__mbstate_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__sigset_t.h: -------------------------------------------------------------------------------- 1 | #ifndef ____sigset_t_defined 2 | #define ____sigset_t_defined 3 | 4 | #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) 5 | typedef struct 6 | { 7 | unsigned long int __val[_SIGSET_NWORDS]; 8 | } __sigset_t; 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__sigset_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@__sigset_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clock_t.h: -------------------------------------------------------------------------------- 1 | #ifndef __clock_t_defined 2 | #define __clock_t_defined 1 3 | 4 | #include 5 | 6 | /* Returned by `clock'. */ 7 | typedef __clock_t clock_t; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clock_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clock_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clockid_t.h: -------------------------------------------------------------------------------- 1 | #ifndef __clockid_t_defined 2 | #define __clockid_t_defined 1 3 | 4 | #include 5 | 6 | /* Clock ID used in clock and timer functions. */ 7 | typedef __clockid_t clockid_t; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clockid_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@clockid_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@locale_t.h: -------------------------------------------------------------------------------- 1 | /* Definition of locale_t. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_TYPES_LOCALE_T_H 20 | #define _BITS_TYPES_LOCALE_T_H 1 21 | 22 | #include 23 | 24 | typedef __locale_t locale_t; 25 | 26 | #endif /* bits/types/locale_t.h */ 27 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@locale_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@locale_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@sigset_t.h: -------------------------------------------------------------------------------- 1 | #ifndef __sigset_t_defined 2 | #define __sigset_t_defined 1 3 | 4 | #include 5 | 6 | /* A set of signals to be blocked, unblocked, or waited for. */ 7 | typedef __sigset_t sigset_t; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@sigset_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@sigset_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_FILE.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef __struct_FILE_defined 19 | #define __struct_FILE_defined 1 20 | 21 | /* Caution: The contents of this file are not part of the official 22 | stdio.h API. However, much of it is part of the official *binary* 23 | interface, and therefore cannot be changed. */ 24 | 25 | #if defined _IO_USE_OLD_IO_FILE && !defined _LIBC 26 | # error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself" 27 | #endif 28 | 29 | #if defined _IO_lock_t_defined && !defined _LIBC 30 | # error "_IO_lock_t_defined should only be defined when building libc itself" 31 | #endif 32 | 33 | #include 34 | 35 | struct _IO_FILE; 36 | struct _IO_marker; 37 | struct _IO_codecvt; 38 | struct _IO_wide_data; 39 | 40 | /* During the build of glibc itself, _IO_lock_t will already have been 41 | defined by internal headers. */ 42 | #ifndef _IO_lock_t_defined 43 | typedef void _IO_lock_t; 44 | #endif 45 | 46 | /* The tag name of this struct is _IO_FILE to preserve historic 47 | C++ mangled names for functions taking FILE* arguments. 48 | That name should not be used in new code. */ 49 | struct _IO_FILE 50 | { 51 | int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ 52 | 53 | /* The following pointers correspond to the C++ streambuf protocol. */ 54 | char *_IO_read_ptr; /* Current read pointer */ 55 | char *_IO_read_end; /* End of get area. */ 56 | char *_IO_read_base; /* Start of putback+get area. */ 57 | char *_IO_write_base; /* Start of put area. */ 58 | char *_IO_write_ptr; /* Current put pointer. */ 59 | char *_IO_write_end; /* End of put area. */ 60 | char *_IO_buf_base; /* Start of reserve area. */ 61 | char *_IO_buf_end; /* End of reserve area. */ 62 | 63 | /* The following fields are used to support backing up and undo. */ 64 | char *_IO_save_base; /* Pointer to start of non-current get area. */ 65 | char *_IO_backup_base; /* Pointer to first valid character of backup area */ 66 | char *_IO_save_end; /* Pointer to end of non-current get area. */ 67 | 68 | struct _IO_marker *_markers; 69 | 70 | struct _IO_FILE *_chain; 71 | 72 | int _fileno; 73 | int _flags2; 74 | __off_t _old_offset; /* This used to be _offset but it's too small. */ 75 | 76 | /* 1+column number of pbase(); 0 is unknown. */ 77 | unsigned short _cur_column; 78 | signed char _vtable_offset; 79 | char _shortbuf[1]; 80 | 81 | _IO_lock_t *_lock; 82 | #ifdef _IO_USE_OLD_IO_FILE 83 | }; 84 | 85 | struct _IO_FILE_complete 86 | { 87 | struct _IO_FILE _file; 88 | #endif 89 | __off64_t _offset; 90 | /* Wide character stream stuff. */ 91 | struct _IO_codecvt *_codecvt; 92 | struct _IO_wide_data *_wide_data; 93 | struct _IO_FILE *_freeres_list; 94 | void *_freeres_buf; 95 | size_t __pad5; 96 | int _mode; 97 | /* Make sure we don't get into trouble again. */ 98 | char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 99 | }; 100 | 101 | /* These macros are used by bits/stdio.h and internal headers. */ 102 | #define __getc_unlocked_body(_fp) \ 103 | (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ 104 | ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) 105 | 106 | #define __putc_unlocked_body(_ch, _fp) \ 107 | (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ 108 | ? __overflow (_fp, (unsigned char) (_ch)) \ 109 | : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) 110 | 111 | #define _IO_EOF_SEEN 0x0010 112 | #define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) 113 | 114 | #define _IO_ERR_SEEN 0x0020 115 | #define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) 116 | 117 | #define _IO_USER_LOCK 0x8000 118 | /* Many more flag bits are defined internally. */ 119 | 120 | #endif 121 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_FILE.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_FILE.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_msqid_ds.h: -------------------------------------------------------------------------------- 1 | /* Generic implementation of the SysV message struct msqid_ds. 2 | Copyright (C) 2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _SYS_MSG_H 20 | # error "Never use directly; include instead." 21 | #endif 22 | 23 | /* Structure of record for one message inside the kernel. 24 | The type `struct msg' is opaque. */ 25 | struct msqid_ds 26 | { 27 | struct ipc_perm msg_perm; /* structure describing operation permission */ 28 | #if __TIMESIZE == 32 29 | __time_t msg_stime; /* time of last msgsnd command */ 30 | unsigned long int __msg_stime_high; 31 | __time_t msg_rtime; /* time of last msgsnd command */ 32 | unsigned long int __msg_rtime_high; 33 | __time_t msg_ctime; /* time of last change */ 34 | unsigned long int __msg_ctime_high; 35 | #else 36 | __time_t msg_stime; /* time of last msgsnd command */ 37 | __time_t msg_rtime; /* time of last msgsnd command */ 38 | __time_t msg_ctime; /* time of last change */ 39 | #endif 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ 41 | msgqnum_t msg_qnum; /* number of messages currently on queue */ 42 | msglen_t msg_qbytes; /* max number of bytes allowed on queue */ 43 | __pid_t msg_lspid; /* pid of last msgsnd() */ 44 | __pid_t msg_lrpid; /* pid of last msgrcv() */ 45 | __syscall_ulong_t __glibc_reserved4; 46 | __syscall_ulong_t __glibc_reserved5; 47 | }; 48 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_msqid_ds.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_msqid_ds.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timespec.h: -------------------------------------------------------------------------------- 1 | /* NB: Include guard matches what uses. */ 2 | #ifndef _STRUCT_TIMESPEC 3 | #define _STRUCT_TIMESPEC 1 4 | 5 | #include 6 | #include 7 | 8 | /* POSIX.1b structure for a time value. This is like a `struct timeval' but 9 | has nanoseconds instead of microseconds. */ 10 | struct timespec 11 | { 12 | __time_t tv_sec; /* Seconds. */ 13 | #if __WORDSIZE == 64 \ 14 | || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ 15 | || __TIMESIZE == 32 16 | __syscall_slong_t tv_nsec; /* Nanoseconds. */ 17 | #else 18 | # if __BYTE_ORDER == __BIG_ENDIAN 19 | int: 32; /* Padding. */ 20 | long int tv_nsec; /* Nanoseconds. */ 21 | # else 22 | long int tv_nsec; /* Nanoseconds. */ 23 | int: 32; /* Padding. */ 24 | # endif 25 | #endif 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timespec.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timespec.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timeval.h: -------------------------------------------------------------------------------- 1 | #ifndef __timeval_defined 2 | #define __timeval_defined 1 3 | 4 | #include 5 | 6 | /* A time value that is accurate to the nearest 7 | microsecond but also has a range of years. */ 8 | struct timeval 9 | { 10 | __time_t tv_sec; /* Seconds. */ 11 | __suseconds_t tv_usec; /* Microseconds. */ 12 | }; 13 | #endif 14 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timeval.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@struct_timeval.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@time_t.h: -------------------------------------------------------------------------------- 1 | #ifndef __time_t_defined 2 | #define __time_t_defined 1 3 | 4 | #include 5 | 6 | /* Returned by `time'. */ 7 | typedef __time_t time_t; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@time_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@time_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@timer_t.h: -------------------------------------------------------------------------------- 1 | #ifndef __timer_t_defined 2 | #define __timer_t_defined 1 3 | 4 | #include 5 | 6 | /* Timer ID returned by `timer_create'. */ 7 | typedef __timer_t timer_t; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@timer_t.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@types@timer_t.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@typesizes.h: -------------------------------------------------------------------------------- 1 | /* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. 2 | Copyright (C) 2012-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _BITS_TYPES_H 20 | # error "Never include directly; use instead." 21 | #endif 22 | 23 | #ifndef _BITS_TYPESIZES_H 24 | #define _BITS_TYPESIZES_H 1 25 | 26 | /* See for the meaning of these macros. This file exists so 27 | that need not vary across different GNU platforms. */ 28 | 29 | /* X32 kernel interface is 64-bit. */ 30 | #if defined __x86_64__ && defined __ILP32__ 31 | # define __SYSCALL_SLONG_TYPE __SQUAD_TYPE 32 | # define __SYSCALL_ULONG_TYPE __UQUAD_TYPE 33 | #else 34 | # define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE 35 | # define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE 36 | #endif 37 | 38 | #define __DEV_T_TYPE __UQUAD_TYPE 39 | #define __UID_T_TYPE __U32_TYPE 40 | #define __GID_T_TYPE __U32_TYPE 41 | #define __INO_T_TYPE __SYSCALL_ULONG_TYPE 42 | #define __INO64_T_TYPE __UQUAD_TYPE 43 | #define __MODE_T_TYPE __U32_TYPE 44 | #ifdef __x86_64__ 45 | # define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE 46 | # define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE 47 | #else 48 | # define __NLINK_T_TYPE __UWORD_TYPE 49 | # define __FSWORD_T_TYPE __SWORD_TYPE 50 | #endif 51 | #define __OFF_T_TYPE __SYSCALL_SLONG_TYPE 52 | #define __OFF64_T_TYPE __SQUAD_TYPE 53 | #define __PID_T_TYPE __S32_TYPE 54 | #define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE 55 | #define __RLIM64_T_TYPE __UQUAD_TYPE 56 | #define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE 57 | #define __BLKCNT64_T_TYPE __SQUAD_TYPE 58 | #define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE 59 | #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE 60 | #define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE 61 | #define __FSFILCNT64_T_TYPE __UQUAD_TYPE 62 | #define __ID_T_TYPE __U32_TYPE 63 | #define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE 64 | #define __TIME_T_TYPE __SYSCALL_SLONG_TYPE 65 | #define __USECONDS_T_TYPE __U32_TYPE 66 | #define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE 67 | #define __SUSECONDS64_T_TYPE __SQUAD_TYPE 68 | #define __DADDR_T_TYPE __S32_TYPE 69 | #define __KEY_T_TYPE __S32_TYPE 70 | #define __CLOCKID_T_TYPE __S32_TYPE 71 | #define __TIMER_T_TYPE void * 72 | #define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE 73 | #define __FSID_T_TYPE struct { int __val[2]; } 74 | #define __SSIZE_T_TYPE __SWORD_TYPE 75 | #define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE 76 | 77 | #ifdef __x86_64__ 78 | /* Tell the libc code that off_t and off64_t are actually the same type 79 | for all ABI purposes, even if possibly expressed as different base types 80 | for C type-checking purposes. */ 81 | # define __OFF_T_MATCHES_OFF64_T 1 82 | 83 | /* Same for ino_t and ino64_t. */ 84 | # define __INO_T_MATCHES_INO64_T 1 85 | 86 | /* And for __rlim_t and __rlim64_t. */ 87 | # define __RLIM_T_MATCHES_RLIM64_T 1 88 | 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ 90 | # define __STATFS_MATCHES_STATFS64 1 91 | 92 | /* And for getitimer, setitimer and rusage */ 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 94 | #else 95 | # define __RLIM_T_MATCHES_RLIM64_T 0 96 | 97 | # define __STATFS_MATCHES_STATFS64 0 98 | 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 100 | #endif 101 | 102 | /* Number of descriptors that can fit in an `fd_set'. */ 103 | #define __FD_SETSIZE 1024 104 | 105 | 106 | #endif /* bits/typesizes.h */ 107 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@typesizes.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@typesizes.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@uintn-identity.h: -------------------------------------------------------------------------------- 1 | /* Inline functions to return unsigned integer values unchanged. 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #if !defined _NETINET_IN_H && !defined _ENDIAN_H 20 | # error "Never use directly; include or instead." 21 | #endif 22 | 23 | #ifndef _BITS_UINTN_IDENTITY_H 24 | #define _BITS_UINTN_IDENTITY_H 1 25 | 26 | #include 27 | 28 | /* These inline functions are to ensure the appropriate type 29 | conversions and associated diagnostics from macros that convert to 30 | a given endianness. */ 31 | 32 | static __inline __uint16_t 33 | __uint16_identity (__uint16_t __x) 34 | { 35 | return __x; 36 | } 37 | 38 | static __inline __uint32_t 39 | __uint32_identity (__uint32_t __x) 40 | { 41 | return __x; 42 | } 43 | 44 | static __inline __uint64_t 45 | __uint64_identity (__uint64_t __x) 46 | { 47 | return __x; 48 | } 49 | 50 | #endif /* _BITS_UINTN_IDENTITY_H. */ 51 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@uintn-identity.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@uintn-identity.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@unistd_ext.h: -------------------------------------------------------------------------------- 1 | /* System-specific extensions of , Linux version. 2 | Copyright (C) 2019-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #ifndef _UNISTD_H 20 | # error "Never include directly; use instead." 21 | #endif 22 | 23 | #ifdef __USE_GNU 24 | 25 | /* Return the kernel thread ID (TID) of the current thread. The 26 | returned value is not subject to caching. Most Linux system calls 27 | accept a TID in place of a PID. Using the TID to change properties 28 | of a thread that has been created using pthread_create can lead to 29 | undefined behavior (comparable to manipulating file descriptors 30 | directly that have not been created explicitly). Note that a TID 31 | uniquely identifies a thread only while this thread is running; a 32 | TID can be reused once a thread has exited, even if the thread is 33 | not detached and has not been joined. */ 34 | extern __pid_t gettid (void) __THROW; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@unistd_ext.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@unistd_ext.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitflags.h: -------------------------------------------------------------------------------- 1 | /* Definitions of flag bits for `waitpid' et al. 2 | Copyright (C) 1992-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #if !defined _SYS_WAIT_H && !defined _STDLIB_H 20 | # error "Never include directly; use instead." 21 | #endif 22 | 23 | 24 | /* Bits in the third argument to `waitpid'. */ 25 | #define WNOHANG 1 /* Don't block waiting. */ 26 | #define WUNTRACED 2 /* Report status of stopped children. */ 27 | 28 | /* Bits in the fourth argument to `waitid'. */ 29 | #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 30 | # define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ 31 | # define WEXITED 4 /* Report dead child. */ 32 | # define WCONTINUED 8 /* Report continued child. */ 33 | # define WNOWAIT 0x01000000 /* Don't reap, just poll status. */ 34 | #endif 35 | 36 | #define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads 37 | in this group */ 38 | #define __WALL 0x40000000 /* Wait for any child. */ 39 | #define __WCLONE 0x80000000 /* Wait for cloned process. */ 40 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitflags.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitflags.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitstatus.h: -------------------------------------------------------------------------------- 1 | /* Definitions of status bits for `wait' et al. 2 | Copyright (C) 1992-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | #if !defined _SYS_WAIT_H && !defined _STDLIB_H 20 | # error "Never include directly; use instead." 21 | #endif 22 | 23 | 24 | /* Everything extant so far uses these same bits. */ 25 | 26 | 27 | /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ 28 | #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) 29 | 30 | /* If WIFSIGNALED(STATUS), the terminating signal. */ 31 | #define __WTERMSIG(status) ((status) & 0x7f) 32 | 33 | /* If WIFSTOPPED(STATUS), the signal that stopped the child. */ 34 | #define __WSTOPSIG(status) __WEXITSTATUS(status) 35 | 36 | /* Nonzero if STATUS indicates normal termination. */ 37 | #define __WIFEXITED(status) (__WTERMSIG(status) == 0) 38 | 39 | /* Nonzero if STATUS indicates termination by a signal. */ 40 | #define __WIFSIGNALED(status) \ 41 | (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) 42 | 43 | /* Nonzero if STATUS indicates the child is stopped. */ 44 | #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) 45 | 46 | /* Nonzero if STATUS indicates the child continued after a stop. We only 47 | define this if provides the WCONTINUED flag bit. */ 48 | #ifdef WCONTINUED 49 | # define __WIFCONTINUED(status) ((status) == __W_CONTINUED) 50 | #endif 51 | 52 | /* Nonzero if STATUS indicates the child dumped core. */ 53 | #define __WCOREDUMP(status) ((status) & __WCOREFLAG) 54 | 55 | /* Macros for constructing status values. */ 56 | #define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) 57 | #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) 58 | #define __W_CONTINUED 0xffff 59 | #define __WCOREFLAG 0x80 60 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitstatus.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@waitstatus.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@wordsize.h: -------------------------------------------------------------------------------- 1 | /* Determine the wordsize from the preprocessor defines. */ 2 | 3 | #if defined __x86_64__ && !defined __ILP32__ 4 | # define __WORDSIZE 64 5 | #else 6 | # define __WORDSIZE 32 7 | #define __WORDSIZE32_SIZE_ULONG 0 8 | #define __WORDSIZE32_PTRDIFF_LONG 0 9 | #endif 10 | 11 | #ifdef __x86_64__ 12 | # define __WORDSIZE_TIME64_COMPAT32 1 13 | /* Both x86-64 and x32 use the 64-bit system call interface. */ 14 | # define __SYSCALL_WORDSIZE 64 15 | #else 16 | # define __WORDSIZE_TIME64_COMPAT32 0 17 | #endif 18 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@wordsize.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@bits@wordsize.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@endian.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1992-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _ENDIAN_H 19 | #define _ENDIAN_H 1 20 | 21 | #include 22 | 23 | /* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */ 24 | #include 25 | 26 | #ifdef __USE_MISC 27 | # define LITTLE_ENDIAN __LITTLE_ENDIAN 28 | # define BIG_ENDIAN __BIG_ENDIAN 29 | # define PDP_ENDIAN __PDP_ENDIAN 30 | # define BYTE_ORDER __BYTE_ORDER 31 | #endif 32 | 33 | #if defined __USE_MISC && !defined __ASSEMBLER__ 34 | /* Conversion interfaces. */ 35 | # include 36 | # include 37 | 38 | # if __BYTE_ORDER == __LITTLE_ENDIAN 39 | # define htobe16(x) __bswap_16 (x) 40 | # define htole16(x) __uint16_identity (x) 41 | # define be16toh(x) __bswap_16 (x) 42 | # define le16toh(x) __uint16_identity (x) 43 | 44 | # define htobe32(x) __bswap_32 (x) 45 | # define htole32(x) __uint32_identity (x) 46 | # define be32toh(x) __bswap_32 (x) 47 | # define le32toh(x) __uint32_identity (x) 48 | 49 | # define htobe64(x) __bswap_64 (x) 50 | # define htole64(x) __uint64_identity (x) 51 | # define be64toh(x) __bswap_64 (x) 52 | # define le64toh(x) __uint64_identity (x) 53 | 54 | # else 55 | # define htobe16(x) __uint16_identity (x) 56 | # define htole16(x) __bswap_16 (x) 57 | # define be16toh(x) __uint16_identity (x) 58 | # define le16toh(x) __bswap_16 (x) 59 | 60 | # define htobe32(x) __uint32_identity (x) 61 | # define htole32(x) __bswap_32 (x) 62 | # define be32toh(x) __uint32_identity (x) 63 | # define le32toh(x) __bswap_32 (x) 64 | 65 | # define htobe64(x) __uint64_identity (x) 66 | # define htole64(x) __bswap_64 (x) 67 | # define be64toh(x) __uint64_identity (x) 68 | # define le64toh(x) __bswap_64 (x) 69 | # endif 70 | #endif 71 | 72 | #endif /* endian.h */ 73 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@endian.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@endian.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@errno.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | /* 19 | * ISO C99 Standard: 7.5 Errors 20 | */ 21 | 22 | #ifndef _ERRNO_H 23 | #define _ERRNO_H 1 24 | 25 | #include 26 | 27 | /* The system-specific definitions of the E* constants, as macros. */ 28 | #include 29 | 30 | /* When included from assembly language, this header only provides the 31 | E* constants. */ 32 | #ifndef __ASSEMBLER__ 33 | 34 | __BEGIN_DECLS 35 | 36 | /* The error code set by various library functions. */ 37 | extern int *__errno_location (void) __THROW __attribute_const__; 38 | # define errno (*__errno_location ()) 39 | 40 | # ifdef __USE_GNU 41 | 42 | /* The full and simple forms of the name with which the program was 43 | invoked. These variables are set up automatically at startup based on 44 | the value of argv[0]. */ 45 | extern char *program_invocation_name; 46 | extern char *program_invocation_short_name; 47 | 48 | #include 49 | 50 | # endif /* __USE_GNU */ 51 | 52 | __END_DECLS 53 | 54 | #endif /* !__ASSEMBLER__ */ 55 | #endif /* errno.h */ 56 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@errno.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@errno.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@fcntl.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@fcntl.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@features.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@features.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs-64.h: -------------------------------------------------------------------------------- 1 | /* This file is automatically generated. 2 | It defines a symbol `__stub_FUNCTION' for each function 3 | in the C library which is a stub, meaning it will fail 4 | every time called, usually setting errno to ENOSYS. */ 5 | 6 | #ifdef _LIBC 7 | #error Applications may not define the macro _LIBC 8 | #endif 9 | 10 | #define __stub___compat_bdflush 11 | #define __stub_chflags 12 | #define __stub_fchflags 13 | #define __stub_gtty 14 | #define __stub_revoke 15 | #define __stub_setlogin 16 | #define __stub_sigreturn 17 | #define __stub_stty 18 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs-64.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs-64.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs.h: -------------------------------------------------------------------------------- 1 | /* This file is automatically generated. 2 | This file selects the right generated file of `__stub_FUNCTION' macros 3 | based on the architecture being compiled for. */ 4 | 5 | 6 | #if !defined __x86_64__ 7 | # include 8 | #endif 9 | #if defined __x86_64__ && defined __LP64__ 10 | # include 11 | #endif 12 | #if defined __x86_64__ && defined __ILP32__ 13 | # include 14 | #endif 15 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@gnu@stubs.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@linux@errno.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@linux@errno.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@linux@errno.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdc-predef.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _STDC_PREDEF_H 19 | #define _STDC_PREDEF_H 1 20 | 21 | /* This header is separate from features.h so that the compiler can 22 | include it implicitly at the start of every compilation. It must 23 | not itself include or any other header that includes 24 | because the implicit include comes before any feature 25 | test macros that may be defined in a source file before it first 26 | explicitly includes a system header. GCC knows the name of this 27 | header in order to preinclude it. */ 28 | 29 | /* glibc's intent is to support the IEC 559 math functionality, real 30 | and complex. If the GCC (4.9 and later) predefined macros 31 | specifying compiler intent are available, use them to determine 32 | whether the overall intent is to support these features; otherwise, 33 | presume an older compiler has intent to support these features and 34 | define these macros by default. */ 35 | 36 | #ifdef __GCC_IEC_559 37 | # if __GCC_IEC_559 > 0 38 | # define __STDC_IEC_559__ 1 39 | # endif 40 | #else 41 | # define __STDC_IEC_559__ 1 42 | #endif 43 | 44 | #ifdef __GCC_IEC_559_COMPLEX 45 | # if __GCC_IEC_559_COMPLEX > 0 46 | # define __STDC_IEC_559_COMPLEX__ 1 47 | # endif 48 | #else 49 | # define __STDC_IEC_559_COMPLEX__ 1 50 | #endif 51 | 52 | /* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is 53 | synchronized with ISO/IEC 10646:2017, fifth edition, plus 54 | the following additions from Amendment 1 to the fifth edition: 55 | - 56 emoji characters 56 | - 285 hentaigana 57 | - 3 additional Zanabazar Square characters */ 58 | #define __STDC_ISO_10646__ 201706L 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdc-predef.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdc-predef.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdio.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdio.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdlib.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@stdlib.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@string.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@string.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@strings.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _STRINGS_H 19 | #define _STRINGS_H 1 20 | 21 | #include 22 | #define __need_size_t 23 | #include 24 | 25 | /* Tell the caller that we provide correct C++ prototypes. */ 26 | #if defined __cplusplus && __GNUC_PREREQ (4, 4) 27 | # define __CORRECT_ISO_CPP_STRINGS_H_PROTO 28 | #endif 29 | 30 | __BEGIN_DECLS 31 | 32 | #if defined __USE_MISC || !defined __USE_XOPEN2K8 33 | /* Compare N bytes of S1 and S2 (same as memcmp). */ 34 | extern int bcmp (const void *__s1, const void *__s2, size_t __n) 35 | __THROW __attribute_pure__ __nonnull ((1, 2)); 36 | 37 | /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */ 38 | extern void bcopy (const void *__src, void *__dest, size_t __n) 39 | __THROW __nonnull ((1, 2)); 40 | 41 | /* Set N bytes of S to 0. */ 42 | extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1)); 43 | 44 | /* Find the first occurrence of C in S (same as strchr). */ 45 | # ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO 46 | extern "C++" 47 | { 48 | extern char *index (char *__s, int __c) 49 | __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); 50 | extern const char *index (const char *__s, int __c) 51 | __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); 52 | 53 | # if defined __OPTIMIZE__ 54 | __extern_always_inline char * 55 | index (char *__s, int __c) __THROW 56 | { 57 | return __builtin_index (__s, __c); 58 | } 59 | 60 | __extern_always_inline const char * 61 | index (const char *__s, int __c) __THROW 62 | { 63 | return __builtin_index (__s, __c); 64 | } 65 | # endif 66 | } 67 | # else 68 | extern char *index (const char *__s, int __c) 69 | __THROW __attribute_pure__ __nonnull ((1)); 70 | # endif 71 | 72 | /* Find the last occurrence of C in S (same as strrchr). */ 73 | # ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO 74 | extern "C++" 75 | { 76 | extern char *rindex (char *__s, int __c) 77 | __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); 78 | extern const char *rindex (const char *__s, int __c) 79 | __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); 80 | 81 | # if defined __OPTIMIZE__ 82 | __extern_always_inline char * 83 | rindex (char *__s, int __c) __THROW 84 | { 85 | return __builtin_rindex (__s, __c); 86 | } 87 | 88 | __extern_always_inline const char * 89 | rindex (const char *__s, int __c) __THROW 90 | { 91 | return __builtin_rindex (__s, __c); 92 | } 93 | # endif 94 | } 95 | # else 96 | extern char *rindex (const char *__s, int __c) 97 | __THROW __attribute_pure__ __nonnull ((1)); 98 | # endif 99 | #endif 100 | 101 | #if defined __USE_MISC || !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI 102 | /* Return the position of the first bit set in I, or 0 if none are set. 103 | The least-significant bit is position 1, the most-significant 32. */ 104 | extern int ffs (int __i) __THROW __attribute_const__; 105 | #endif 106 | 107 | /* The following two functions are non-standard but necessary for non-32 bit 108 | platforms. */ 109 | # ifdef __USE_MISC 110 | extern int ffsl (long int __l) __THROW __attribute_const__; 111 | __extension__ extern int ffsll (long long int __ll) 112 | __THROW __attribute_const__; 113 | # endif 114 | 115 | /* Compare S1 and S2, ignoring case. */ 116 | extern int strcasecmp (const char *__s1, const char *__s2) 117 | __THROW __attribute_pure__ __nonnull ((1, 2)); 118 | 119 | /* Compare no more than N chars of S1 and S2, ignoring case. */ 120 | extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 121 | __THROW __attribute_pure__ __nonnull ((1, 2)); 122 | 123 | #ifdef __USE_XOPEN2K8 124 | /* POSIX.1-2008 extended locale interface (see locale.h). */ 125 | # include 126 | 127 | /* Compare S1 and S2, ignoring case, using collation rules from LOC. */ 128 | extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 129 | __THROW __attribute_pure__ __nonnull ((1, 2, 3)); 130 | 131 | /* Compare no more than N chars of S1 and S2, ignoring case, using 132 | collation rules from LOC. */ 133 | extern int strncasecmp_l (const char *__s1, const char *__s2, 134 | size_t __n, locale_t __loc) 135 | __THROW __attribute_pure__ __nonnull ((1, 2, 4)); 136 | #endif 137 | 138 | __END_DECLS 139 | 140 | #if __GNUC_PREREQ (3,4) && __USE_FORTIFY_LEVEL > 0 \ 141 | && defined __fortify_function 142 | /* Functions with security checks. */ 143 | # if defined __USE_MISC || !defined __USE_XOPEN2K8 144 | # include 145 | # endif 146 | #endif 147 | 148 | #endif /* strings.h */ 149 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@strings.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@strings.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@cdefs.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@cdefs.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@ipc.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _SYS_IPC_H 19 | #define _SYS_IPC_H 1 20 | 21 | #include 22 | 23 | /* Get system dependent definition of `struct ipc_perm' and more. */ 24 | #include 25 | #include 26 | 27 | #ifndef __uid_t_defined 28 | typedef __uid_t uid_t; 29 | # define __uid_t_defined 30 | #endif 31 | 32 | #ifndef __gid_t_defined 33 | typedef __gid_t gid_t; 34 | # define __gid_t_defined 35 | #endif 36 | 37 | #ifndef __mode_t_defined 38 | typedef __mode_t mode_t; 39 | # define __mode_t_defined 40 | #endif 41 | 42 | #ifndef __key_t_defined 43 | typedef __key_t key_t; 44 | # define __key_t_defined 45 | #endif 46 | 47 | __BEGIN_DECLS 48 | 49 | /* Generates key for System V style IPC. */ 50 | extern key_t ftok (const char *__pathname, int __proj_id) __THROW; 51 | 52 | __END_DECLS 53 | 54 | #endif /* sys/ipc.h */ 55 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@ipc.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@ipc.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@msg.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | #ifndef _SYS_MSG_H 19 | #define _SYS_MSG_H 20 | 21 | #include 22 | 23 | #define __need_size_t 24 | #include 25 | 26 | /* Get common definition of System V style IPC. */ 27 | #include 28 | 29 | /* Get system dependent definition of `struct msqid_ds' and more. */ 30 | #include 31 | 32 | /* Define types required by the standard. */ 33 | #include 34 | 35 | #ifndef __pid_t_defined 36 | typedef __pid_t pid_t; 37 | # define __pid_t_defined 38 | #endif 39 | 40 | #ifndef __ssize_t_defined 41 | typedef __ssize_t ssize_t; 42 | # define __ssize_t_defined 43 | #endif 44 | 45 | /* The following System V style IPC functions implement a message queue 46 | system. The definition is found in XPG2. */ 47 | 48 | #ifdef __USE_GNU 49 | /* Template for struct to be used as argument for `msgsnd' and `msgrcv'. */ 50 | struct msgbuf 51 | { 52 | __syscall_slong_t mtype; /* type of received/sent message */ 53 | char mtext[1]; /* text of the message */ 54 | }; 55 | #endif 56 | 57 | 58 | __BEGIN_DECLS 59 | 60 | /* Message queue control operation. */ 61 | extern int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf) __THROW; 62 | 63 | /* Get messages queue. */ 64 | extern int msgget (key_t __key, int __msgflg) __THROW; 65 | 66 | /* Receive message from message queue. 67 | 68 | This function is a cancellation point and therefore not marked with 69 | __THROW. */ 70 | extern ssize_t msgrcv (int __msqid, void *__msgp, size_t __msgsz, 71 | long int __msgtyp, int __msgflg); 72 | 73 | /* Send message to message queue. 74 | 75 | This function is a cancellation point and therefore not marked with 76 | __THROW. */ 77 | extern int msgsnd (int __msqid, const void *__msgp, size_t __msgsz, 78 | int __msgflg); 79 | 80 | __END_DECLS 81 | 82 | #endif /* sys/msg.h */ 83 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@msg.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@msg.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@select.h: -------------------------------------------------------------------------------- 1 | /* `fd_set' type and related macros, and `select'/`pselect' declarations. 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. 3 | This file is part of the GNU C Library. 4 | 5 | The GNU C Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | The GNU C Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with the GNU C Library; if not, see 17 | . */ 18 | 19 | /* POSIX 1003.1g: 6.2 Select from File Descriptor Sets */ 20 | 21 | #ifndef _SYS_SELECT_H 22 | #define _SYS_SELECT_H 1 23 | 24 | #include 25 | 26 | /* Get definition of needed basic types. */ 27 | #include 28 | 29 | /* Get __FD_* definitions. */ 30 | #include 31 | 32 | /* Get sigset_t. */ 33 | #include 34 | 35 | /* Get definition of timer specification structures. */ 36 | #include 37 | #include 38 | #ifdef __USE_XOPEN2K 39 | # include 40 | #endif 41 | 42 | #ifndef __suseconds_t_defined 43 | typedef __suseconds_t suseconds_t; 44 | # define __suseconds_t_defined 45 | #endif 46 | 47 | 48 | /* The fd_set member is required to be an array of longs. */ 49 | typedef long int __fd_mask; 50 | 51 | /* Some versions of define this macros. */ 52 | #undef __NFDBITS 53 | /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ 54 | #define __NFDBITS (8 * (int) sizeof (__fd_mask)) 55 | #define __FD_ELT(d) ((d) / __NFDBITS) 56 | #define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) 57 | 58 | /* fd_set for select and pselect. */ 59 | typedef struct 60 | { 61 | /* XPG4.2 requires this member name. Otherwise avoid the name 62 | from the global namespace. */ 63 | #ifdef __USE_XOPEN 64 | __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS]; 65 | # define __FDS_BITS(set) ((set)->fds_bits) 66 | #else 67 | __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; 68 | # define __FDS_BITS(set) ((set)->__fds_bits) 69 | #endif 70 | } fd_set; 71 | 72 | /* Maximum number of file descriptors in `fd_set'. */ 73 | #define FD_SETSIZE __FD_SETSIZE 74 | 75 | #ifdef __USE_MISC 76 | /* Sometimes the fd_set member is assumed to have this type. */ 77 | typedef __fd_mask fd_mask; 78 | 79 | /* Number of bits per word of `fd_set' (some code assumes this is 32). */ 80 | # define NFDBITS __NFDBITS 81 | #endif 82 | 83 | 84 | /* Access macros for `fd_set'. */ 85 | #define FD_SET(fd, fdsetp) __FD_SET (fd, fdsetp) 86 | #define FD_CLR(fd, fdsetp) __FD_CLR (fd, fdsetp) 87 | #define FD_ISSET(fd, fdsetp) __FD_ISSET (fd, fdsetp) 88 | #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) 89 | 90 | 91 | __BEGIN_DECLS 92 | 93 | /* Check the first NFDS descriptors each in READFDS (if not NULL) for read 94 | readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS 95 | (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out 96 | after waiting the interval specified therein. Returns the number of ready 97 | descriptors, or -1 for errors. 98 | 99 | This function is a cancellation point and therefore not marked with 100 | __THROW. */ 101 | extern int select (int __nfds, fd_set *__restrict __readfds, 102 | fd_set *__restrict __writefds, 103 | fd_set *__restrict __exceptfds, 104 | struct timeval *__restrict __timeout); 105 | 106 | #ifdef __USE_XOPEN2K 107 | /* Same as above only that the TIMEOUT value is given with higher 108 | resolution and a sigmask which is been set temporarily. This version 109 | should be used. 110 | 111 | This function is a cancellation point and therefore not marked with 112 | __THROW. */ 113 | extern int pselect (int __nfds, fd_set *__restrict __readfds, 114 | fd_set *__restrict __writefds, 115 | fd_set *__restrict __exceptfds, 116 | const struct timespec *__restrict __timeout, 117 | const __sigset_t *__restrict __sigmask); 118 | #endif 119 | 120 | 121 | /* Define some inlines helping to catch common problems. */ 122 | #if __USE_FORTIFY_LEVEL > 0 && defined __GNUC__ 123 | # include 124 | #endif 125 | 126 | __END_DECLS 127 | 128 | #endif /* sys/select.h */ 129 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@select.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@select.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@stat.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@stat.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@types.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991-2020 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with the GNU C Library; if not, see 16 | . */ 17 | 18 | /* 19 | * POSIX Standard: 2.6 Primitive System Data Types 20 | */ 21 | 22 | #ifndef _SYS_TYPES_H 23 | #define _SYS_TYPES_H 1 24 | 25 | #include 26 | 27 | __BEGIN_DECLS 28 | 29 | #include 30 | 31 | #ifdef __USE_MISC 32 | # ifndef __u_char_defined 33 | typedef __u_char u_char; 34 | typedef __u_short u_short; 35 | typedef __u_int u_int; 36 | typedef __u_long u_long; 37 | typedef __quad_t quad_t; 38 | typedef __u_quad_t u_quad_t; 39 | typedef __fsid_t fsid_t; 40 | # define __u_char_defined 41 | # endif 42 | typedef __loff_t loff_t; 43 | #endif 44 | 45 | #ifndef __ino_t_defined 46 | # ifndef __USE_FILE_OFFSET64 47 | typedef __ino_t ino_t; 48 | # else 49 | typedef __ino64_t ino_t; 50 | # endif 51 | # define __ino_t_defined 52 | #endif 53 | #if defined __USE_LARGEFILE64 && !defined __ino64_t_defined 54 | typedef __ino64_t ino64_t; 55 | # define __ino64_t_defined 56 | #endif 57 | 58 | #ifndef __dev_t_defined 59 | typedef __dev_t dev_t; 60 | # define __dev_t_defined 61 | #endif 62 | 63 | #ifndef __gid_t_defined 64 | typedef __gid_t gid_t; 65 | # define __gid_t_defined 66 | #endif 67 | 68 | #ifndef __mode_t_defined 69 | typedef __mode_t mode_t; 70 | # define __mode_t_defined 71 | #endif 72 | 73 | #ifndef __nlink_t_defined 74 | typedef __nlink_t nlink_t; 75 | # define __nlink_t_defined 76 | #endif 77 | 78 | #ifndef __uid_t_defined 79 | typedef __uid_t uid_t; 80 | # define __uid_t_defined 81 | #endif 82 | 83 | #ifndef __off_t_defined 84 | # ifndef __USE_FILE_OFFSET64 85 | typedef __off_t off_t; 86 | # else 87 | typedef __off64_t off_t; 88 | # endif 89 | # define __off_t_defined 90 | #endif 91 | #if defined __USE_LARGEFILE64 && !defined __off64_t_defined 92 | typedef __off64_t off64_t; 93 | # define __off64_t_defined 94 | #endif 95 | 96 | #ifndef __pid_t_defined 97 | typedef __pid_t pid_t; 98 | # define __pid_t_defined 99 | #endif 100 | 101 | #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) \ 102 | && !defined __id_t_defined 103 | typedef __id_t id_t; 104 | # define __id_t_defined 105 | #endif 106 | 107 | #ifndef __ssize_t_defined 108 | typedef __ssize_t ssize_t; 109 | # define __ssize_t_defined 110 | #endif 111 | 112 | #ifdef __USE_MISC 113 | # ifndef __daddr_t_defined 114 | typedef __daddr_t daddr_t; 115 | typedef __caddr_t caddr_t; 116 | # define __daddr_t_defined 117 | # endif 118 | #endif 119 | 120 | #if (defined __USE_MISC || defined __USE_XOPEN) && !defined __key_t_defined 121 | typedef __key_t key_t; 122 | # define __key_t_defined 123 | #endif 124 | 125 | #if defined __USE_XOPEN || defined __USE_XOPEN2K8 126 | # include 127 | #endif 128 | #include 129 | #include 130 | #include 131 | 132 | #ifdef __USE_XOPEN 133 | # ifndef __useconds_t_defined 134 | typedef __useconds_t useconds_t; 135 | # define __useconds_t_defined 136 | # endif 137 | # ifndef __suseconds_t_defined 138 | typedef __suseconds_t suseconds_t; 139 | # define __suseconds_t_defined 140 | # endif 141 | #endif 142 | 143 | #define __need_size_t 144 | #include 145 | 146 | #ifdef __USE_MISC 147 | /* Old compatibility names for C types. */ 148 | typedef unsigned long int ulong; 149 | typedef unsigned short int ushort; 150 | typedef unsigned int uint; 151 | #endif 152 | 153 | /* These size-specific names are used by some of the inet code. */ 154 | 155 | #include 156 | 157 | /* These were defined by ISO C without the first `_'. */ 158 | typedef __uint8_t u_int8_t; 159 | typedef __uint16_t u_int16_t; 160 | typedef __uint32_t u_int32_t; 161 | typedef __uint64_t u_int64_t; 162 | 163 | #if __GNUC_PREREQ (2, 7) 164 | typedef int register_t __attribute__ ((__mode__ (__word__))); 165 | #else 166 | typedef int register_t; 167 | #endif 168 | 169 | /* Some code from BIND tests this macro to see if the types above are 170 | defined. */ 171 | #define __BIT_TYPES_DEFINED__ 1 172 | 173 | 174 | #ifdef __USE_MISC 175 | /* In BSD is expected to define BYTE_ORDER. */ 176 | # include 177 | 178 | /* It also defines `fd_set' and the FD_* macros for `select'. */ 179 | # include 180 | #endif /* Use misc. */ 181 | 182 | 183 | #if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \ 184 | && !defined __blksize_t_defined 185 | typedef __blksize_t blksize_t; 186 | # define __blksize_t_defined 187 | #endif 188 | 189 | /* Types from the Large File Support interface. */ 190 | #ifndef __USE_FILE_OFFSET64 191 | # ifndef __blkcnt_t_defined 192 | typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */ 193 | # define __blkcnt_t_defined 194 | # endif 195 | # ifndef __fsblkcnt_t_defined 196 | typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */ 197 | # define __fsblkcnt_t_defined 198 | # endif 199 | # ifndef __fsfilcnt_t_defined 200 | typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */ 201 | # define __fsfilcnt_t_defined 202 | # endif 203 | #else 204 | # ifndef __blkcnt_t_defined 205 | typedef __blkcnt64_t blkcnt_t; /* Type to count number of disk blocks. */ 206 | # define __blkcnt_t_defined 207 | # endif 208 | # ifndef __fsblkcnt_t_defined 209 | typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */ 210 | # define __fsblkcnt_t_defined 211 | # endif 212 | # ifndef __fsfilcnt_t_defined 213 | typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */ 214 | # define __fsfilcnt_t_defined 215 | # endif 216 | #endif 217 | 218 | #ifdef __USE_LARGEFILE64 219 | typedef __blkcnt64_t blkcnt64_t; /* Type to count number of disk blocks. */ 220 | typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks. */ 221 | typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */ 222 | #endif 223 | 224 | 225 | /* Now add the thread types. */ 226 | #if defined __USE_POSIX199506 || defined __USE_UNIX98 227 | # include 228 | #endif 229 | 230 | __END_DECLS 231 | 232 | #endif /* sys/types.h */ 233 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@types.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@sys@types.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@unistd.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@include@unistd.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stdarg.h: -------------------------------------------------------------------------------- 1 | /*===---- stdarg.h - Variable argument handling ----------------------------=== 2 | * 3 | * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 | * See https://llvm.org/LICENSE.txt for license information. 5 | * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 | * 7 | *===-----------------------------------------------------------------------=== 8 | */ 9 | 10 | #ifndef __STDARG_H 11 | #define __STDARG_H 12 | 13 | #ifndef _VA_LIST 14 | typedef __builtin_va_list va_list; 15 | #define _VA_LIST 16 | #endif 17 | #define va_start(ap, param) __builtin_va_start(ap, param) 18 | #define va_end(ap) __builtin_va_end(ap) 19 | #define va_arg(ap, type) __builtin_va_arg(ap, type) 20 | 21 | /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode 22 | * or -ansi is not specified, since it was not part of C90. 23 | */ 24 | #define __va_copy(d,s) __builtin_va_copy(d,s) 25 | 26 | #if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__) 27 | #define va_copy(dest, src) __builtin_va_copy(dest, src) 28 | #endif 29 | 30 | #ifndef __GNUC_VA_LIST 31 | #define __GNUC_VA_LIST 1 32 | typedef __builtin_va_list __gnuc_va_list; 33 | #endif 34 | 35 | #endif /* __STDARG_H */ 36 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stdarg.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stdarg.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stddef.h: -------------------------------------------------------------------------------- 1 | /*===---- stddef.h - Basic type definitions --------------------------------=== 2 | * 3 | * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 | * See https://llvm.org/LICENSE.txt for license information. 5 | * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 | * 7 | *===-----------------------------------------------------------------------=== 8 | */ 9 | 10 | #if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \ 11 | defined(__need_size_t) || defined(__need_wchar_t) || \ 12 | defined(__need_NULL) || defined(__need_wint_t) 13 | 14 | #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ 15 | !defined(__need_wchar_t) && !defined(__need_NULL) && \ 16 | !defined(__need_wint_t) 17 | /* Always define miscellaneous pieces when modules are available. */ 18 | #if !__has_feature(modules) 19 | #define __STDDEF_H 20 | #endif 21 | #define __need_ptrdiff_t 22 | #define __need_size_t 23 | #define __need_wchar_t 24 | #define __need_NULL 25 | #define __need_STDDEF_H_misc 26 | /* __need_wint_t is intentionally not defined here. */ 27 | #endif 28 | 29 | #if defined(__need_ptrdiff_t) 30 | #if !defined(_PTRDIFF_T) || __has_feature(modules) 31 | /* Always define ptrdiff_t when modules are available. */ 32 | #if !__has_feature(modules) 33 | #define _PTRDIFF_T 34 | #endif 35 | typedef __PTRDIFF_TYPE__ ptrdiff_t; 36 | #endif 37 | #undef __need_ptrdiff_t 38 | #endif /* defined(__need_ptrdiff_t) */ 39 | 40 | #if defined(__need_size_t) 41 | #if !defined(_SIZE_T) || __has_feature(modules) 42 | /* Always define size_t when modules are available. */ 43 | #if !__has_feature(modules) 44 | #define _SIZE_T 45 | #endif 46 | typedef __SIZE_TYPE__ size_t; 47 | #endif 48 | #undef __need_size_t 49 | #endif /*defined(__need_size_t) */ 50 | 51 | #if defined(__need_STDDEF_H_misc) 52 | /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is 53 | * enabled. */ 54 | #if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \ 55 | !defined(_RSIZE_T)) || __has_feature(modules) 56 | /* Always define rsize_t when modules are available. */ 57 | #if !__has_feature(modules) 58 | #define _RSIZE_T 59 | #endif 60 | typedef __SIZE_TYPE__ rsize_t; 61 | #endif 62 | #endif /* defined(__need_STDDEF_H_misc) */ 63 | 64 | #if defined(__need_wchar_t) 65 | #ifndef __cplusplus 66 | /* Always define wchar_t when modules are available. */ 67 | #if !defined(_WCHAR_T) || __has_feature(modules) 68 | #if !__has_feature(modules) 69 | #define _WCHAR_T 70 | #if defined(_MSC_EXTENSIONS) 71 | #define _WCHAR_T_DEFINED 72 | #endif 73 | #endif 74 | typedef __WCHAR_TYPE__ wchar_t; 75 | #endif 76 | #endif 77 | #undef __need_wchar_t 78 | #endif /* defined(__need_wchar_t) */ 79 | 80 | #if defined(__need_NULL) 81 | #undef NULL 82 | #ifdef __cplusplus 83 | # if !defined(__MINGW32__) && !defined(_MSC_VER) 84 | # define NULL __null 85 | # else 86 | # define NULL 0 87 | # endif 88 | #else 89 | # define NULL ((void*)0) 90 | #endif 91 | #ifdef __cplusplus 92 | #if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED) 93 | namespace std { typedef decltype(nullptr) nullptr_t; } 94 | using ::std::nullptr_t; 95 | #endif 96 | #endif 97 | #undef __need_NULL 98 | #endif /* defined(__need_NULL) */ 99 | 100 | #if defined(__need_STDDEF_H_misc) 101 | #if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L 102 | #include "__stddef_max_align_t.h" 103 | #endif 104 | #define offsetof(t, d) __builtin_offsetof(t, d) 105 | #undef __need_STDDEF_H_misc 106 | #endif /* defined(__need_STDDEF_H_misc) */ 107 | 108 | /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use 109 | __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ 110 | #if defined(__need_wint_t) 111 | /* Always define wint_t when modules are available. */ 112 | #if !defined(_WINT_T) || __has_feature(modules) 113 | #if !__has_feature(modules) 114 | #define _WINT_T 115 | #endif 116 | typedef __WINT_TYPE__ wint_t; 117 | #endif 118 | #undef __need_wint_t 119 | #endif /* __need_wint_t */ 120 | 121 | #endif 122 | -------------------------------------------------------------------------------- /.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stddef.h.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@@home@tony@practure@2020_10_5课程设计@keshe@final/@usr@lib@clang@10.0.1@include@stddef.h.blob -------------------------------------------------------------------------------- /.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/background.c: -------------------------------------------------------------------------------- 1 | /* 2 | * 这是后台进程,作用是popen执行命令,并将命令返回结果通过 有名管道 发送给前台程序 3 | * */ 4 | #include 5 | #include 6 | #define BUF_SIZE 1024 7 | #define MAX_SIZE 1024 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include 16 | #include 17 | typedef struct mymesg 18 | { 19 | long int mtype; 20 | char mtext[512]; 21 | }mymesg; 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | /* 26 | * Step1:使用消息队列接收消息 27 | * 28 | */ 29 | int id = 0; 30 | mymesg ybx_msg; 31 | key_t key = ftok("my_message", 52); 32 | id = msgget(key, IPC_CREAT | 0666); //打开或者创建队列 33 | if (-1 == id) { 34 | perror("create msg error"); 35 | exit(EXIT_FAILURE); 36 | } 37 | 38 | //一直接收消息,直到遇到 exit 终止 39 | while(1) 40 | { 41 | if (-1 == msgrcv(id, (void *)&ybx_msg, sizeof(ybx_msg.mtext), 1,0)) { 42 | perror("Recive msg error "); 43 | exit(EXIT_FAILURE); 44 | } 45 | if(strncmp(ybx_msg.mtext,"exit",4) ==0) 46 | { 47 | break; 48 | } 49 | // if(0 == strncmp(ybx_msg.mtext, "cd", 2)) 50 | // { 51 | // char tmp_path[100]; 52 | // char *p; 53 | // char *buff; 54 | // buff = ybx_msg.mtext; 55 | // p = strsep(&buff, " "); 56 | // p = strsep(&buff, " "); 57 | // memset(tmp_path, 0x00, sizeof(tmp_path)); 58 | // strncat(tmp_path, p, strlen(p)-1); 59 | // //此时 tmp_path 是cd要到的目录 60 | // printf("You will cd %s,the length of path=%ld\n", tmp_path, strlen(tmp_path)); 61 | // if(-1 == chdir(tmp_path)) 62 | // { 63 | // perror("cd failed"); 64 | // } 65 | // } 66 | 67 | //将每个命令后面追加 2>&1 68 | // 这样 popen 就可以把错误信息也打印出来了 69 | char linux_cmd[MAX_SIZE] = {'\0'}; 70 | strncpy(linux_cmd, ybx_msg.mtext, strlen(ybx_msg.mtext)-1); //-1的目的是因为 ybx_msg.mtext 的结尾是 \n ,这导致追加的信息打印不到终端上面。 71 | char append[6] = " 2>&1\n"; 72 | strncat(linux_cmd, append, 6); 73 | 74 | /* 75 | * Step2:使用 popen 76 | * 来执行 Linux 命令 77 | */ 78 | char buf[BUF_SIZE]; 79 | memset(buf, 0x00, sizeof(buf)); 80 | FILE *popen_f = popen(linux_cmd, "r"); 81 | if(!popen_f) //错误检测 82 | { 83 | fprintf(stderr, "Erro to popen"); 84 | } 85 | 86 | /* 87 | * Step3:使用管道发送命令,写入到管道文件里面 88 | */ 89 | char *p_f = "my_fifo"; 90 | int fd = open(p_f, O_WRONLY| O_NONBLOCK, S_IRWXU); 91 | if (-1 == fd) { //错误检测 92 | perror("open error"); 93 | } 94 | 95 | while(1) 96 | { 97 | //因为 popen 的执行结果可能是多行,所以需要while循环打出 98 | while(fgets(buf, BUF_SIZE, popen_f)!= NULL) 99 | { 100 | write(fd, buf, sizeof(buf)); 101 | memset(buf, 0x00, sizeof(buf)); 102 | 103 | } 104 | //发送一个信号量告诉 forward的 read 结束了,需要跳出循环 105 | write(fd, "EOF", sizeof("EOF")); 106 | break; 107 | } 108 | 109 | close(fd); 110 | pclose(popen_f); 111 | } 112 | 113 | return 0; 114 | } 115 | 116 | -------------------------------------------------------------------------------- /.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/background.c.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/background.c.blob -------------------------------------------------------------------------------- /.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/ybxsh.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | void replace(char *src, char *replacement, char *result) 14 | { 15 | char *p; 16 | char *buff; 17 | buff = src; 18 | p = strsep(&buff, " "); 19 | p = strsep(&buff, " "); 20 | memset(result, 0x00, sizeof(result)); 21 | strncpy(result, replacement, strlen(replacement)); 22 | while(p!=NULL) 23 | { 24 | strncat(result, p, strlen(p)); 25 | strncat(result, " ", 1); 26 | p = strsep(&buff, " "); 27 | } 28 | } 29 | 30 | typedef struct mymesg 31 | { 32 | long int mtype; 33 | char mtext[512]; 34 | }mymesg; 35 | 36 | int main(int argc, char *argv[]) 37 | { 38 | /* 39 | * Step1:fork 40 | * 这里父进程执行 execl 后台程序 41 | * 子进程执行下面的 前端程序(创建消息队列,有名管道输出结果) 42 | * */ 43 | pid_t fpid; 44 | fpid = fork(); 45 | if(fpid < 0) 46 | { 47 | perror("Fork error "); 48 | exit(EXIT_FAILURE); 49 | }else if (fpid > 0) { //父进程 50 | if(-1 == execl("./background.bin", "exec background", NULL)) 51 | { 52 | perror("Execl error "); 53 | } 54 | } 55 | //接下来默认的就是 fipd == 0的子进程的操作 56 | 57 | 58 | /* 59 | * Step2:创建消息队列 60 | * 发送经过转化后的消息给background 61 | * */ 62 | int id = 0; 63 | mymesg ybx_msg; 64 | key_t key = ftok("my_message", 52); 65 | id = msgget(key, IPC_CREAT | 0666); //打开或者创建队列 66 | if (-1 == id) { 67 | perror("create msg error"); 68 | exit(EXIT_FAILURE); 69 | } 70 | while(1) 71 | { 72 | char msg[256]; 73 | memset(msg, 0x00, sizeof(msg)); 74 | ybx_msg.mtype = 1; 75 | printf("\033[01;35m[YBXshell]\033[0m \033[01;33m👉 \033[0m"); 76 | fgets(msg, sizeof(msg), stdin); 77 | //下面实现Windows与Linux命令转换 78 | /* 79 | * 至少实现如下 Windows——Linux 对照命令: 80 | * dir——ls 81 | * rename——mv 82 | * move——mv 83 | * del——rm 84 | * cd——cd(pwd) 85 | * exit——exit 86 | * */ 87 | if(!strncmp(msg, "dir", 3)) 88 | { 89 | replace(msg, "ls ", ybx_msg.mtext); 90 | }else if(!strncmp(msg, "rename", 6)) 91 | { 92 | replace(msg, "mv ", ybx_msg.mtext); 93 | }else if(!strncmp(msg, "move", 4)) 94 | { 95 | replace(msg, "mv ", ybx_msg.mtext); 96 | }else if(!strncmp(msg, "del", 3)) 97 | { 98 | replace(msg, "rm ", ybx_msg.mtext); 99 | }else 100 | { 101 | strcpy(ybx_msg.mtext,msg); 102 | } 103 | 104 | if (-1 == msgsnd(id, (void *)&ybx_msg, sizeof(ybx_msg.mtext), IPC_NOWAIT)) { 105 | perror("Send msg error: "); 106 | exit(EXIT_FAILURE); 107 | } 108 | 109 | if(strncmp(msg,"exit",4) == 0) 110 | { 111 | break; 112 | } 113 | 114 | /* 115 | * 在 Step2 与 Step3 之间需要等待 background 的执行结果 116 | * */ 117 | 118 | /* 119 | * Step3: 命名管道 120 | * 使用命名管道接收获得的执行的结果 121 | * 并显示在终端上面 122 | * */ 123 | char *p_f = "my_fifo"; 124 | int fd = open(p_f, O_RDONLY); 125 | if(-1 == fd) 126 | { 127 | perror("open error"); 128 | } 129 | 130 | char buf[256]; 131 | //判断输出结束 132 | while(1){ 133 | memset(buf, 0x00, sizeof(buf)); 134 | int ret = read(fd, buf, sizeof(buf)); 135 | if(-1 == ret) 136 | { 137 | perror("read error"); 138 | } 139 | 140 | if(strcmp(buf, "EOF")) 141 | { 142 | printf("%s", buf); 143 | }else{ 144 | break; 145 | } 146 | } 147 | close(fd); 148 | 149 | } 150 | 151 | //最终释放消息队列 152 | if(-1 == msgctl(id, IPC_RMID, NULL)) //IPC_RMID从系统内核中移除消息队列 153 | { 154 | perror("Delete msg error "); 155 | exit(EXIT_FAILURE); 156 | } 157 | 158 | return 0; 159 | } 160 | -------------------------------------------------------------------------------- /.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/ybxsh.c.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/.ccls-cache/@home@tony@practure@2020_10_5课程设计@keshe@final/ybxsh.c.blob -------------------------------------------------------------------------------- /.github/workflows/c-cpp.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ CI 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | 17 | - name: Setup Debug Session 18 | uses: csexton/debugger-action@master 19 | - name: make 20 | run: make 21 | - run: echo success! 22 | - name: start program 23 | run: ./ybxsh 24 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | CFLAGS=-Wall -g 2 | 3 | all:ybxsh background.bin 4 | -mkfifo my_fifo 5 | @echo "---------------------------------------------" 6 | @echo " 😃 SUCCEED!!!" 7 | @echo -e " Make finished: \c" 8 | @date 9 | 10 | 11 | ybxsh:ybxsh.o 12 | $(CC) $(CFLAGS) $^ -o $@ 13 | 14 | background.bin:background.o 15 | $(CC) $(CFLAGS) $^ -o $@ 16 | 17 | clean: 18 | rm *.o ybxsh background.bin my_fifo 19 | @echo "Clean Finished!!! 😃" 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2020 Unix/Linux 系统及编程 2 | > 制作Windows命令解释器 3 | 4 | [点击观看在线效果演示](https://www.bilibili.com/video/BV1Ma4y177VW) 5 | 6 | 7 | -------------------------------------------------------------------------------- /background.c: -------------------------------------------------------------------------------- 1 | /* 2 | * 这是后台进程,作用是popen执行命令,并将命令返回结果通过 有名管道 发送给前台程序 3 | * */ 4 | #include 5 | #include 6 | #define BUF_SIZE 1024 7 | #define MAX_SIZE 1024 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include 16 | #include 17 | typedef struct mymesg 18 | { 19 | long int mtype; 20 | char mtext[512]; 21 | }mymesg; 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | /* 26 | * Step1:使用消息队列接收消息 27 | * 28 | */ 29 | int id = 0; 30 | mymesg ybx_msg; 31 | key_t key = ftok("my_message", 52); 32 | id = msgget(key, IPC_CREAT | 0666); //打开或者创建队列 33 | if (-1 == id) { 34 | perror("create msg error"); 35 | exit(EXIT_FAILURE); 36 | } 37 | 38 | //一直接收消息,直到遇到 exit 终止 39 | while(1) 40 | { 41 | if (-1 == msgrcv(id, (void *)&ybx_msg, sizeof(ybx_msg.mtext), 1,0)) { 42 | perror("Recive msg error "); 43 | exit(EXIT_FAILURE); 44 | } 45 | if(strncmp(ybx_msg.mtext,"exit",4) ==0) 46 | { 47 | break; 48 | } 49 | // if(0 == strncmp(ybx_msg.mtext, "cd", 2)) 50 | // { 51 | // char tmp_path[100]; 52 | // char *p; 53 | // char *buff; 54 | // buff = ybx_msg.mtext; 55 | // p = strsep(&buff, " "); 56 | // p = strsep(&buff, " "); 57 | // memset(tmp_path, 0x00, sizeof(tmp_path)); 58 | // strncat(tmp_path, p, strlen(p)-1); 59 | // //此时 tmp_path 是cd要到的目录 60 | // printf("You will cd %s,the length of path=%ld\n", tmp_path, strlen(tmp_path)); 61 | // if(-1 == chdir(tmp_path)) 62 | // { 63 | // perror("cd failed"); 64 | // } 65 | // } 66 | 67 | //将每个命令后面追加 2>&1 68 | // 这样 popen 就可以把错误信息也打印出来了 69 | char linux_cmd[MAX_SIZE] = {'\0'}; 70 | strncpy(linux_cmd, ybx_msg.mtext, strlen(ybx_msg.mtext)-1); //-1的目的是因为 ybx_msg.mtext 的结尾是 \n ,这导致追加的信息打印不到终端上面。 71 | char append[6] = " 2>&1\n"; 72 | strncat(linux_cmd, append, 6); 73 | 74 | /* 75 | * Step2:使用 popen 76 | * 来执行 Linux 命令 77 | */ 78 | char buf[BUF_SIZE]; 79 | memset(buf, 0x00, sizeof(buf)); 80 | FILE *popen_f = popen(linux_cmd, "r"); 81 | if(!popen_f) //错误检测 82 | { 83 | fprintf(stderr, "Erro to popen"); 84 | } 85 | 86 | /* 87 | * Step3:使用管道发送命令,写入到管道文件里面 88 | */ 89 | char *p_f = "my_fifo"; 90 | int fd = open(p_f, O_WRONLY| O_NONBLOCK, S_IRWXU); 91 | if (-1 == fd) { //错误检测 92 | perror("open error"); 93 | } 94 | 95 | while(1) 96 | { 97 | //因为 popen 的执行结果可能是多行,所以需要while循环打出 98 | while(fgets(buf, BUF_SIZE, popen_f)!= NULL) 99 | { 100 | write(fd, buf, sizeof(buf)); 101 | memset(buf, 0x00, sizeof(buf)); 102 | 103 | } 104 | //发送一个信号量告诉 forward的 read 结束了,需要跳出循环 105 | write(fd, "EOF", sizeof("EOF")); 106 | break; 107 | } 108 | 109 | close(fd); 110 | pclose(popen_f); 111 | } 112 | 113 | return 0; 114 | } 115 | 116 | -------------------------------------------------------------------------------- /ybxsh.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | void replace(char *src, char *replacement, char *result) 14 | { 15 | char *p; 16 | char *buff; 17 | buff = src; 18 | p = strsep(&buff, " "); 19 | p = strsep(&buff, " "); 20 | memset(result, 0x00, sizeof(result)); 21 | strncpy(result, replacement, strlen(replacement)); 22 | while(p!=NULL) 23 | { 24 | strncat(result, p, strlen(p)); 25 | strncat(result, " ", 1); 26 | p = strsep(&buff, " "); 27 | } 28 | } 29 | 30 | typedef struct mymesg 31 | { 32 | long int mtype; 33 | char mtext[512]; 34 | }mymesg; 35 | 36 | int main(int argc, char *argv[]) 37 | { 38 | /* 39 | * Step1:fork 40 | * 这里父进程执行 execl 后台程序 41 | * 子进程执行下面的 前端程序(创建消息队列,有名管道输出结果) 42 | * */ 43 | pid_t fpid; 44 | fpid = fork(); 45 | if(fpid < 0) 46 | { 47 | perror("Fork error "); 48 | exit(EXIT_FAILURE); 49 | }else if (fpid > 0) { //父进程 50 | if(-1 == execl("./background.bin", "exec background", NULL)) 51 | { 52 | perror("Execl error "); 53 | } 54 | } 55 | //接下来默认的就是 fipd == 0的子进程的操作 56 | 57 | 58 | /* 59 | * Step2:创建消息队列 60 | * 发送经过转化后的消息给background 61 | * */ 62 | int id = 0; 63 | mymesg ybx_msg; 64 | key_t key = ftok("my_message", 52); 65 | id = msgget(key, IPC_CREAT | 0666); //打开或者创建队列 66 | if (-1 == id) { 67 | perror("create msg error"); 68 | exit(EXIT_FAILURE); 69 | } 70 | while(1) 71 | { 72 | char msg[256]; 73 | memset(msg, 0x00, sizeof(msg)); 74 | ybx_msg.mtype = 1; 75 | printf("\033[01;35m[YBXshell]\033[0m \033[01;33m👉 \033[0m"); 76 | fgets(msg, sizeof(msg), stdin); 77 | //下面实现Windows与Linux命令转换 78 | /* 79 | * 至少实现如下 Windows——Linux 对照命令: 80 | * dir——ls 81 | * rename——mv 82 | * move——mv 83 | * del——rm 84 | * cd——cd(pwd) 85 | * exit——exit 86 | * */ 87 | if(!strncmp(msg, "dir", 3)) 88 | { 89 | replace(msg, "ls ", ybx_msg.mtext); 90 | }else if(!strncmp(msg, "rename", 6)) 91 | { 92 | replace(msg, "mv ", ybx_msg.mtext); 93 | }else if(!strncmp(msg, "move", 4)) 94 | { 95 | replace(msg, "mv ", ybx_msg.mtext); 96 | }else if(!strncmp(msg, "del", 3)) 97 | { 98 | replace(msg, "rm ", ybx_msg.mtext); 99 | }else 100 | { 101 | strcpy(ybx_msg.mtext,msg); 102 | } 103 | 104 | if (-1 == msgsnd(id, (void *)&ybx_msg, sizeof(ybx_msg.mtext), IPC_NOWAIT)) { 105 | perror("Send msg error: "); 106 | exit(EXIT_FAILURE); 107 | } 108 | 109 | if(strncmp(msg,"exit",4) == 0) 110 | { 111 | break; 112 | } 113 | 114 | /* 115 | * 在 Step2 与 Step3 之间需要等待 background 的执行结果 116 | * */ 117 | 118 | /* 119 | * Step3: 命名管道 120 | * 使用命名管道接收获得的执行的结果 121 | * 并显示在终端上面 122 | * */ 123 | char *p_f = "my_fifo"; 124 | int fd = open(p_f, O_RDONLY); 125 | if(-1 == fd) 126 | { 127 | perror("open error"); 128 | } 129 | 130 | char buf[256]; 131 | //判断输出结束 132 | while(1){ 133 | memset(buf, 0x00, sizeof(buf)); 134 | int ret = read(fd, buf, sizeof(buf)); 135 | if(-1 == ret) 136 | { 137 | perror("read error"); 138 | } 139 | 140 | if(strcmp(buf, "EOF")) 141 | { 142 | printf("%s", buf); 143 | }else{ 144 | break; 145 | } 146 | } 147 | close(fd); 148 | 149 | } 150 | 151 | //最终释放消息队列 152 | if(-1 == msgctl(id, IPC_RMID, NULL)) //IPC_RMID从系统内核中移除消息队列 153 | { 154 | perror("Delete msg error "); 155 | exit(EXIT_FAILURE); 156 | } 157 | 158 | return 0; 159 | } 160 | -------------------------------------------------------------------------------- /课程设计任务书/课程设计任务书.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计任务书/课程设计任务书.doc -------------------------------------------------------------------------------- /课程设计任务书/课程设计任务书.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计任务书/课程设计任务书.pdf -------------------------------------------------------------------------------- /课程设计报告/picture/man_execl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_execl.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_fcntl_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_fcntl_h.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_fork.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_msgctl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_msgctl.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_msgsnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_msgsnd.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_popen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_popen.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_sys_ipc_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_sys_ipc_h.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_sys_msg_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_sys_msg_h.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_sys_stat_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_sys_stat_h.png -------------------------------------------------------------------------------- /课程设计报告/picture/man_sys_types_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/man_sys_types_h.png -------------------------------------------------------------------------------- /课程设计报告/picture/开发环境.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/开发环境.png -------------------------------------------------------------------------------- /课程设计报告/picture/项目介绍.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IammyselfYBX/Cmd-in-linux-shell/58339f0bb46bf9ca4ee273db07fa3e533ac6ca03/课程设计报告/picture/项目介绍.png --------------------------------------------------------------------------------