📄 bsd-nextstep.c
字号:
/* * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#include "includes.h"RCSID("$Id: bsd-nextstep.c,v 1.4 2001/03/26 05:35:34 mouring Exp $");#ifdef HAVE_NEXT#include <errno.h>#include <sys/wait.h>#include "bsd-nextstep.h"pid_t posix_wait(int *status){ union wait statusp; pid_t wait_pid; #undef wait /* Use NeXT's wait() function */ wait_pid = wait(&statusp); if (status) *status = (int) statusp.w_status; return wait_pid;}inttcgetattr(int fd, struct termios *t){ return (ioctl(fd, TIOCGETA, t));}inttcsetattr(int fd, int opt, const struct termios *t){ struct termios localterm; if (opt & TCSASOFT) { localterm = *t; localterm.c_cflag |= CIGNORE; t = &localterm; } switch (opt & ~TCSASOFT) { case TCSANOW: return (ioctl(fd, TIOCSETA, t)); case TCSADRAIN: return (ioctl(fd, TIOCSETAW, t)); case TCSAFLUSH: return (ioctl(fd, TIOCSETAF, t)); default: errno = EINVAL; return (-1); }}int tcsetpgrp(int fd, pid_t pgrp){ return (ioctl(fd, TIOCSPGRP, &pgrp));}speed_t cfgetospeed(const struct termios *t){ return (t->c_ospeed);}speed_t cfgetispeed(const struct termios *t){ return (t->c_ispeed);}intcfsetospeed(struct termios *t,int speed){ t->c_ospeed = speed; return (0);}intcfsetispeed(struct termios *t, int speed){ t->c_ispeed = speed; return (0);}#endif /* HAVE_NEXT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -