├── .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
--------------------------------------------------------------------------------