这个列表是CYGWIN文档的一部分。因为它列出了POSIX的主要函数,我觉得可以用做重点翻译方向,免得被大量的函数弄晕。
This is the beginning of documentation listing the calls supported by the Cygwin library.
All POSIX.1/1996 and ANSI C calls are listed in this file. Note that while almost all POSIX.1/1990 calls are included in Cygwin, most POSIX.1/1996 calls are not (yet at least!). Additional Unix compatibility calls and extended libc/libm calls are provided by Cygwin but may or may not be listed yet.
To see if a function is implemented but not listed here, check for the presence of the call in the file winsup/cygwin.din in the sources. In addition, you may want to read the source code corresponding to the call to verify that it is not a stub. Finally, libc/libm functions (including extended calls not listed here) may be documented in the newlib texinfo documentation.
Calls are implemented on both Windows 95 and NT unless otherwise noted. Included are references to relevant standards, if any. Calls starting with "cygwin_" are Cygwin-specific calls.
ANSI C Library Functions
(Please note: This section has not yet been updated for the latest net release.)
libc stdio (newlib/libc/stdio)
clearerr: C 4.9.10.1
fclose: C 4.9.5.1, P 8.2.3.2
feof: C 4.9.10.2
ferror: C 4.9.10.3
fflush: C 4.9.5.2, P 8.2.3.4
fgetc: C 4.9.7.1, P 8.2.3.5
fgetpos: C 4.9.9.1
fgets: C 4.9.7.2, P 8.2.3.5
fopen: C 4.9.5.3, P 8.2.3.1
fprintf: C 4.9.7.3, P 8.2.3.6
fputc: C 4.9.7.3, P 8.2.3.6
fputs: C 4.9.7.4, P 8.2.3.6
fread: C 4.9.8.1, P 8.2.3.5
freopen: C 4.9.5.4, P 8.2.3.3
fscanf: C 4.9.6.2, P 8.2.3.7
fseek: C 4.9.9.2, P 8.2.3.7
fsetpos: C 4.9.9.3
ftell: C 4.9.9.4, P 8.2.3.10
fwrite: C 4.9.8.2, P 8.2.3.6
getc: C 4.9.7.5, P 8.2.3.5
getchar: C 4.9.7.6, P 8.2.3.5
gets: C 4.9.7.7, P 8.2.3.5
perror: C 4.9.10.4, P 8.2.3.8
printf: C 4.9.6.3, P 8.2.3.6
putc: C 4.9.7.8, P 8.2.3.6
putchar: C 4.9.7.9, P 8.2.3.6
puts: C 4.9.7.10, P 8.2.3.6
remove: C 4.9.4.1, P 8.2.4
rename: C 4.9.4.2, P 5.5.3.1
rewind: C 4.9.9.5, P 8.2.3.7
scanf: C 4.9.6.4, P 8.2.3.5
setbuf: C 4.9.5.5
setvbuf: C 4.9.5.6
sprintf: C 4.9.6.5
sscanf: C 4.9.6.6
tmpfile: C 4.9.4.3, P 8.2.3.9
tmpnam: C 4.9.4.4, P 8.2.5
vfprintf: C 4.9.6.7
ungetc: C 4.9.7.11
vprintf: C 4.9.6.8
vsprintf: C 4.9.6.9
libc string (newlib/libc/string)
memchr: C 4.11.5.1
memcmp: C 4.11.4.1
memcpy: C 4.11.2.1
memmove: C 4.11.2.2
memset: C 4.11.6.1
strcat: C 4.11.3.1
strchr: C 4.11.5.2
strcmp: C 4.11.4.2
strcoll: C 4.11.4.3
strcpy: C 4.11.2.3
strcspn: C 4.11.5.3
strerror: C 4.11.6.2
strlen: C 4.11.6.3
strncat: C 4.11.3.2
strncmp: C 4.11.3.2
strncpy: C 4.11.2.4
strpbrk: C 4.11.5.4
strrchr: C 4.11.5.5
strspn: C 4.11.5.6
strstr: C 4.11.5.7
strtok: C 4.11.5.8
strxfrm: C 4.11.4.5
libc stdlib (newlib/libc/stdlib, environ.cc, newlib/libc/include/machine/setjmp.h newlib/libc/include/assert.h)
abort: C 4.10.4.1, P 8.2.3.12
abs: C 4.10.6.1
assert: C 4.2.1.1
atexit: C 4.10.4.2
atof: C 4.10.1.1
atoi: C 4.10.1.2
atol: C 4.10.1.3
bsearch: C 4.10.5.1
calloc: C 4.10.3.1
div: C 4.10.6.2
exit: C 4.10.4.3, P 8.2.3.12
free: C 4.10.3.2
getenv: C 4.10.4.4, P 4.6.1.1
labs: C 4.10.6.3
ldiv: C 4.10.6.2
longjmp: C 4.6.2.1
malloc: C 4.10.3.3
mblen: C 4.10.7.1
mbstowcs: C 4.10.8.1
mbtowc: C 4.10.7.2
qsort: 4.10.5.2
rand: C 4.10.2.1
realloc: C 4.10.3.4
setjmp: C 4.6.1.1
srand: C 4.10.2.2
strtod: C 4.10.1.4
strtol: C 4.10.1.5
strtoul: C 4.10.1.6
system: C 4.10.4.5
wcstombs: C 4.10.8.2
wctomb: C 4.10.7.3
libc time (times.cc, newlib/libc/time)
asctime: C 4.12.3.1
gmtime: C 4.12.3.3
localtime: C 4.12.3.4, P 8.1.1
time: C 4.12.2.4, P 4.5.1.1
clock: C 4.12.2.1
ctime: C 4.12.3.2
difftime: C 4.12.2.2
mktime: C 4.12.2.3, P 8.1.1
strftime: C 4.11.6.2
libc signals (signal.cc, newlib/libc/signal)
raise: C 4.7.2.1
signal: C 4.7.1.1
libc ctype (newlib/libc/ctype)
isalnum: C 4.3.1.1
isalpha: C 4.3.1.2
iscntrl: C 4.3.1.3
isdigit: C 4.3.1.4
isgraph: C 4.3.1.5
islower: C 4.3.1.6
isprint: C 4.3.1.7
ispunct: C 4.3.1.8
isspace: C 4.3.1.9
isupper: C 4.3.1.10
isxdigit: C 4.3.1.11
tolower: C 4.3.2.1
toupper: C 4.3.2.2
libm math (newlib/libm/math)
acos: C 4.5.2.1
asin: C 4.5.2.2
atan: C 4.5.2.3
atan2: C 4.5.2.4
ceil: C 4.5.6.1
cos: C 4.5.2.5
cosh: C 4.5.3.2
exp: C 4.5.4.1
fabs: C 4.5.6.2
floor: C 4.5.6.3
fmod: C 4.5.6.4
frexp: C 4.5.4.2
ldexp: C 4.5.4.3
log: C 4.5.4.4
log10: C 4.5.4.5
modf: C 4.5.4.6
pow: C 4.5.5.1
sin: C 4.5.2.6
sinh: C 4.5.3.2
sqrt: C 4.5.5.2
tan: C 4.5.2.7
tanh: C 4.5.3.3
libc misc (newlib/libc/locale, gcc/ginclude/stdarg.h)
localeconv: C 4.4.2.1
setlocale: C 4.4.1.1, P 8.1.2.1
va_arg: C 4.8.1.2
va_end: C 4.8.1.3
va_start: C 4.8.1.1
POSIX.1/96 Functions
(Please note: This section has not yet been updated for the latest net release.)
Process Primitives (Section 3)
fork: P 3.1.1.1
execl: P 3.1.2.1
execle: P 3.1.2.1
execlp: P 3.1.2.1
execv: P 3.1.2.1
execve: P 3.1.2.1
execvp: P 3.1.2.1
pthread_atfork: P96 3.1.3.1 -- unimplemented
wait: P 3.2.1.1
waitpid: P 3.2.1.1
_exit: P 3.2.2.1
kill: P 3.3.2.1
sigemptyset: P 3.3.3.1
sigfillset: P 3.3.3.1
sigaddset: P 3.3.3.1
sigdelset: P 3.3.3.1
sigismember: P 3.3.3.1
sigaction: P 3.3.4.1
pthread_sigmask: P96 3.3.5.1
sigprocmask: P 3.3.5.1
sigpending: P 3.3.6.1
sigsuspend: P 3.3.7.1
sigwait: P96 3.3.8.1 -- unimplemented
sigwaitinfo: P96 3.3.8.1 -- unimplemented
sigtimedwait: P96 3.3.8.1 -- unimplemented
sigqueue: P96 3.3.9.1 -- unimplemented
pthread_kill: P96 3.3.10.1
alarm: P 3.4.1.1
pause: P 3.4.2.1
sleep: P 3.4.3.1
Process Environment (Section 4)
getpid: P 4.1.1.1
getppid: P 4.1.1.1
getuid: P 4.2.1.1
geteuid: P 4.2.1.1
getgid: P 4.2.1.1
getegid: P 4.2.1.1
setuid: P 4.2.2.1 (stub on 9X, sets ENOSYS, returns zero)
setgid: P 4.2.2.1 (stub on 9X, sets ENOSYS, returns zero)
getgroups: P 4.2.3.1
getlogin: P 4.2.4.1
getlogin_r: P 4.2.4.1 -- unimplemented
getpgrp: P 4.3.1.1
setsid: P 4.3.2.1
setpgid: P 4.3.3.1
uname: P 4.4.1.1
time: C 4.12.2.4, P 4.5.1.1
times: P 4.5.2.1
getenv: C 4.10.4.4, P 4.6.1.1
ctermid: P 4.7.1.1
ttyname: P 4.7.2.1
ttyname_r: P 4.7.2.1 -- unimplemented
isatty: P 4.7.2.1
sysconf: P 4.8.1.1
Files and Directories (Section 5)
opendir: P 5.1.2.1
readdir: P 5.1.2.1
readdir_r: P96 5.1.2.1 -- unimplemented
rewinddir: P 5.1.2.1
closedir: P 5.1.2.1
chdir: P 5.2.1.1
getcwd: P 5.2.2.1
open: P 5.3.1.1
creat: P 5.3.2.1
umask: P 5.3.3.1
link: P 5.3.4.1 (copy file in Win 95, and when link fails in NT)
mkdir: P 5.4.1.1
mkfifo: P 5.4.2.1 -- unimplemented!!!
unlink: P 5.5.1.1
rmdir: P 5.5.2.1
rename: C 4.9.4.2, P 5.5.3.1
stat: P 5.6.2.1
fstat: P 5.6.2.1
access: P 5.6.3.1
chmod: P 5.6.4.1
fchmod: P96 5.6.4.1
chown: P 5.6.5.1 (stub in Win 95; always returns zero)
utime: P 5.6.6.1
ftruncate: P96 5.6.7.1
pathconf: P 5.7.1.1
fpathconf: P 5.7.1.1
Input and Output Primitives (Section 6)
pipe: P 6.1.1.1
dup: P 6.2.1.1
dup2: P 6.2.1.1
close: P 6.3.1.1
read: P 6.4.1.1
write: P 6.4.2.1
fcntl: P 6.5.2.1 (note: fcntl(fd, F_GETLK,...) is not implemented (returns -1 with errno set to ENOSYS)).
lseek: P 6.5.3.1 (note: only works correctly on binary files)
fsync: P96 6.6.1.1
fdatasync: P96 6.6.2.1 -- unimplemented
aio_read: P96 6.7.2.1 -- unimplemented
aio_write: P96 6.7.3.1 -- unimplemented
lio_listio: P96 6.7.4.1 -- unimplemented
aio_error: P96 6.7.5.1 -- unimplemented
aio_return: P96 6.7.6.1 -- unimplemented
aio_cancel: P96 6.7.7.1 -- unimplemented
aio_suspend: P96 6.7.8.1 -- unimplemented
aio_fsync: P96 6.7.9.1 -- unimplemented
Device- and Class-Specific Functions (Section 7)
cfgetispeed: P96 7.1.3.1
cfgetospeed: P96 7.1.3.1
cfsetispeed: P96 7.1.3.1
cfsetospeed: P96 7.1.3.1
tcdrain: P 7.2.2.1
tcflow: P 7.2.2.1
tcflush: P 7.2.2.1
tcgetattr: P96 7.2.1.1
tcgetpgrp: P 7.2.3.1
tcsendbreak: P 7.2.2.1
tcsetattr: P96 7.2.1.1
tcsetpgrp: P 7.2.4.1
Language-Specific Services for the C Programming Language (Section 8)
abort: C 4.10.4.1, P 8.2.3.12
asctime_r: P96 8.3.4.1 -- unimplemented
ctime_r: P96 8.3.5.1 -- unimplemented
exit: C 4.10.4.3, P 8.2.3.12
fclose: C 4.9.5.1, P 8.2.3.2
fdopen: P 8.2.2.1
fflush: C 4.9.5.2, P 8.2.3.4
fgetc: C 4.9.7.1, P 8.2.3.5
fgets: C 4.9.7.2, P 8.2.3.5
fileno: P 8.2.1.1
flockfile: P96 8.2.6.1 -- unimplemented
fopen: C 4.9.5.3, P 8.2.3.1
fprintf: C 4.9.7.3, P 8.2.3.6
fputc: C 4.9.7.3, P 8.2.3.6
fputs: C 4.9.7.4, P 8.2.3.6
fread: C 4.9.8.1, P 8.2.3.5
freopen: C 4.9.5.4, P 8.2.3.3
fscanf: C 4.9.6.2, P 8.2.3.7
fseek: C 4.9.9.2, P 8.2.3.7
ftell: C 4.9.9.4, P 8.2.3.10
ftrylockfile: P96 8.2.6.1 -- unimplemented
funlockfile: P96 8.2.6.1 -- unimplemented
fwrite: C 4.9.8.2, P 8.2.3.6
getc: C 4.9.7.5, P 8.2.3.5
getc_unlocked: P96 8.2.7.1
getchar: C 4.9.7.6, P 8.2.3.5
getchar_unlocked: P96 8.2.7.1
gets: C 4.9.7.7, P 8.2.3.5
gmtime_r: P96 8.3.6.1 -- unimplemented
localtime_r: P96 8.3.7.1 -- unimplemented
perror: C 4.9.10.4, P 8.2.3.8
printf: C 4.9.6.3, P 8.2.3.6
putc: C 4.9.7.8, P 8.2.3.6
putc_unlocked: P96 8.2.7.1
putchar: C 4.9.7.9, P 8.2.3.6
putchar_unlocked: P96 8.2.7.1
puts: C 4.9.7.10, P 8.2.3.6
rand_r: P96 8.3.8.1 -- unimplemented
remove: C 4.9.4.1, P 8.2.4
rewind: C 4.9.9.5, P 8.2.3.7
scanf: C 4.9.6.4, P 8.2.3.5
setlocale: C 4.4.1.1, P 8.1.2.1
siglongjmp: P 8.3.1.1
sigsetjmp: P 8.3.1.1
strtok_r: P96 8.3.3.1 -- unimplemented
tmpfile: C 4.9.4.3, P 8.2.3.9
tmpnam: C 4.9.4.4, P 8.2.5
tzset: P 8.3.2.1
System Databases (Section 9)
getgrgid: P 9.2.1.1
getgrgid_r: P96 9.2.1.1 -- unimplemented
getgrnam: P 9.2.1.1
getgrnam_r: P96 9.2.1.1 -- unimplemented
getpwnam: P 9.2.2.1
getpwnam_r: P96 9.2.2.1 -- unimplemented
getpwuid: P 9.2.2.1
getpwuid_r: P96 9.2.2.1 -- unimplemented
Synchronization (Section 11)
pthread_cond_broadcast: P96 11.4.3.1
pthread_cond_destroy: P96 11.4.2.1
pthread_cond_init: P96 11.4.2.1
pthread_cond_signal: P96 11.4.3.1
pthread_cond_timedwait: P96 11.4.4.1
pthread_cond_wait: P96 11.4.4.1
pthread_condattr_destroy: P96 11.4.1.1 -- unimplemented
pthread_condattr_getpshared: P96 11.4.1.1 -- unimplemented
pthread_condattr_init: P96 11.4.1.1 -- unimplemented
pthread_condattr_setpshared: P96 11.4.1.1 -- unimplemented
pthread_mutex_destroy: P96 11.3.2.1
pthread_mutex_init: P96 11.3.2.1
pthread_mutex_lock: P96 11.3.3.1
pthread_mutex_trylock: P96 11.3.3.1
pthread_mutex_unlock: P96 11.3.3.1
sem_close: P96 11.2.4.1 -- unimplemented
sem_destroy: P96 11.2.2.1
sem_getvalue: P96 11.2.8.1 -- unimplemented
sem_init: P96 11.2.1.1
sem_open: P96 11.2.3.1 -- unimplemented
sem_post: P96 11.2.7.1
sem_trywait: P96 11.2.6.1
sem_unlink: P96 11.2.5.1 -- unimplemented
sem_wait: P96 11.2.6.1
Memory Management (Section 12)
mlock: P96 12.1.2.1 -- unimplemented
mlockall: P96 12.1.1.1 -- unimplemented
mmap: P96 12.2.1.1
mprotect: P96 12.2.3.1
msync: P96 12.2.4.1
munlock: P96 12.1.2.1 -- unimplemented
munlockall: P96 12.1.1.1 -- unimplemented
munmap: P96 12.2.2.1
shm_open: P96 12.3.1.1 -- unimplemented
shm_unlink: P96 12.3.2.1 -- unimplemented
Execution Scheduling (Section 13)
pthread_attr_getinheritsched: P96 13.5.1.1 -- unimplemented
pthread_attr_getschedparam: P96 13.5.1.1 -- unimplemented
pthread_attr_getschedpolicy: P96 13.5.1.1 -- unimplemented
pthread_attr_getscope: P96 13.5.1.1 -- unimplemented
pthread_attr_setinheritsched: P96 13.5.1.1
pthread_attr_setschedparam: P96 13.5.1.1 -- unimplemented
pthread_attr_setschedpolicy: P96 13.5.1.1 -- unimplemented
pthread_attr_setscope: P96 13.5.1.1 -- unimplemented
pthread_getschedparam: P96 13.5.2.1
pthread_mutex_getprioceiling: P96 13.6.2.1 -- unimplemented
pthread_mutex_setprioceiling: P96 13.6.2.1 -- unimplemented
pthread_mutexattr_getprioceiling: P96 13.6.1.1 -- unimplemented
pthread_mutexattr_getprotocol: P96 13.6.1.1 -- unimplemented
pthread_mutexattr_setprioceiling: P96 13.6.1.1 -- unimplemented
pthread_mutexattr_setprotocol: P96 13.6.1.1 -- unimplemented
pthread_setschedparam: P96 13.5.2.1
sched_get_priority_max: P96 13.3.6.1 -- unimplemented
sched_get_priority_min: P96 13.3.6.1 -- unimplemented
sched_getparam: P96 13.3.2.1 -- unimplemented
sched_getscheduler: P96 13.3.4.1 -- unimplemented
sched_rr_get_interval: P96 13.3.6.1 -- unimplemented
sched_setparam: P96 13.3.1.1 -- unimplemented
sched_setscheduler: P96 13.3.3.1 -- unimplemented
sched_yield: P96 13.3.5.1 -- unimplemented
Clocks and Timers (Section 14)
clock_getres: P96 14.2.1.1 -- unimplemented
clock_gettime: P96 14.2.1.1 -- unimplemented
clock_settime: P96 14.2.1.1 -- unimplemented
nanosleep: P96 14.2.5.1 -- unimplemented
timer_create: P96 14.2.2.1 -- unimplemented
timer_delete: P96 14.2.3.1 -- unimplemented
timer_getoverrun: P96 14.2.4.1 -- unimplemented
timer_gettime: P96 14.2.4.1 -- unimplemented
timer_settime: P96 14.2.4.1 -- unimplemented
Message Passing (Section 15)
mq_close: P96 15.2.2.1 -- unimplemented
mq_getattr: P96 15.2.8.1 -- unimplemented
mq_notify: P96 15.2.6.1 -- unimplemented
mq_open: P96 15.2.1.1 -- unimplemented
mq_receive: P96 15.2.5.1 -- unimplemented
mq_send: P96 15.2.4.1 -- unimplemented
mq_setattr: P96 15.2.7.1 -- unimplemented
mq_unlink: P96 15.2.3.1 -- unimplemented
Thread Management (Section 16)
pthread_attr_destroy: P96 16.2.1.1
pthread_attr_getdetachstate: P96 16.2.1.1 -- unimplemented
pthread_attr_getstackaddr: P96 16.2.1.1 -- unimplemented
pthread_attr_getstacksize: P96 16.2.1.1
pthread_attr_init: P96 16.2.1.1
pthread_attr_setdetachstate: P96 16.2.1.1 -- unimplemented
pthread_attr_setstackaddr: P96 16.2.1.1 -- unimplemented
pthread_attr_setstacksize: P96 16.2.1.1
pthread_create: P96 16.2.2.1
pthread_detach: P96 16.2.4.1 -- unimplemented
pthread_equal: P96 16.2.7.1
pthread_exit: P96 16.2.5.1
pthread_join: P96 16.2.3.1 -- unimplemented
pthread_once: P96 16.2.8.1 -- unimplemented
pthread_self: P96 16.2.6.1
Thread-Specific Data (Section 17)
pthread_getspecific: P96 17.1.2.1
pthread_key_create: P96 17.1.1.1
pthread_key_delete: P96 17.1.3.1
pthread_setspecific: P96 17.1.2.1
Thread Cancellation (Section 18)
pthread_cancel: P96 18.2.1.1 -- unimplemented
pthread_cleanup_pop: P96 18.2.3.1 -- unimplemented
pthread_cleanup_push: P96 18.2.3.1 -- unimplemented
pthread_setcancelstate: P96 18.2.2.1 -- unimplemented
pthread_setcanceltype: P96 18.2.2.1 -- unimplemented
pthread_testcancel: P96 18.2.2.1 -- unimplemented
Misc Functions
(Please note: This section has not yet been updated for the latest net release.)
Networking (net.cc) (Standardized by POSIX 1.g, which is probably still in draft?)
accept
bind
connect
getdomainname
gethostbyaddr
gethostbyname
getpeername
getprotobyname
getprotobynumber
getservbyname
getservbyport
getsockname
getsockopt
herror
htonl
htons
inet_addr
inet_makeaddr
inet_netof
inet_ntoa
listen
ntohl
ntohs
rcmd
recv
recvfrom
rexec
rresvport
send
sendto
setsockopt
shutdown
socket
socketpair
Of these networking calls, rexec, rcmd and rresvport are implemented in MS IP stack but may not be implemented in other vendors' stacks.
Other
acl
aclcheck
aclfrommode
aclfrompbits
aclfromtext
aclsort
acltomode
acltopbits
acltotext
chroot (with restrictions)
closelog
cwait
cygwin_conv_to_full_posix_path
cygwin_conv_to_full_win32_path
cygwin_conv_to_posix_path
cygwin_conv_to_win32_path
cygwin_logon_user
cygwin_posix_path_list_p
cygwin_posix_to_win32_path_list
cygwin_posix_to_win32_path_list_buf_size
cygwin_set_impersonation_token
cygwin_split_path
cygwin_win32_to_posix_path_list
cygwin_win32_to_posix_path_list_buf_size
cygwin_winpid_to_pid
dlclose
dlerror
dlfork
dlopen
dlsym
endgrent
endhostent
facl
fcloseall
fcloseall_r
ffs
fstatfs
ftime
get_osfhandle
getdtablesize
getgrent
gethostname
getitimer
getmntent
getpagesize
getpgid
getpwent
gettimeofday: BSD
grantpt
initgroups (stub)
ioctl
killpg
login
logout
lstat
mknod (stub, sets ENOSYS, returns -1)
memccpy
nice
openlog
pclose
popen
ptsname
putenv
random
readv
realpath
regfree
rexec
select
setegid: SVR4 (stub on 9X, sets ENOSYS, returns zero)@item endpwent
setenv
seterrno
seteuid (stub on 9X, sets ENOSYS, returns zero)
sethostent
setitimer
setmntent
setmode
setpassent
setpgrp
setpwent
settimeofday: BSD (stub, set ENOSYS, return -1)
sexecl
sexecle
sexeclp
sexeclpe
sexeclpe
sexecp
sexecv
sexecve
sexecvpe
sigpause
spawnl (spawn calls are from Windows C library)
spawnle
spawnlp
spawnlpe
spawnv
spawnve
spawnvp
spawnvpe
srandom
statfs
strsignal
strtosigno
swab
syslog
timezone
truncate (SVR4/4.3+BSD)
ttyslot
unlockpt
unsetenv
usleep
utimes
vfork: stub that calls fork
vhangup (stub, sets ENOSYS, returns -1)
wait3
wait4
wcscmp
wcslen
wprintf
writev
-------------------- @ 拜托!大家都是神仙,留下点回忆好不好?
文章选项:
|