int tcsetattr(int fd, int j, const struct termios *t) { int n, i; char buf[100]; if(!isptty(fd)) { if(!isatty(fd)) { errno = ENOTTY; return -1; } else return 0; } n = sprintf(buf, "IOW %4.4x %4.4x %4.4x %4.4x ", t->c_iflag, t->c_oflag, t->c_cflag, t->c_lflag); for(i = 0; i < NCCS; i++) n += sprintf(buf+n, "%2.2x ", t->c_cc[i]); if(seek(fd, -2, 0) != -2) { _syserrno(); return -1; } n = __sys_write(fd, buf, n); if(n < 0) { _syserrno(); return -1; } return 0; }
int tcsetpgrp(int fd, pid_t pgrpid) { int n; char buf[30]; if(!isptty(fd)) { if(!isatty(fd)) { errno = ENOTTY; return -1; } else return 0; } n = sprintf(buf, "IOW note %d", pgrpid); if(seek(fd, -2, 0) != -2) { _syserrno(); return -1; } n = __sys_write(fd, buf, n); if(n < 0) { _syserrno(); return -1; } return 0; }
void __utrap_write(const char *str) { int berrno; berrno = errno; __sys_write(STDERR_FILENO, str, strlen(str)); errno = berrno; }
int _sys_write (FILEHANDLE fh, const U8 *buf, U32 len, int mode) { #ifdef STDIO if (fh == STDOUT) { /* Standard Output device. */ for ( ; len; len--) { sendchar (*buf++); } return (0); } #endif if (fh > 0x8000) { return (-1); } return (__sys_write (fh, buf, len)); }
ssize_t __write(int d, const void *buf, size_t nbytes) { int n; if(d<0 || d>=OPEN_MAX || !(_fdinfo[d].flags&FD_ISOPEN)){ errno = EBADF; return -1; } if(_fdinfo[d].oflags&O_APPEND) seek(d, 0, 2); n = __sys_write(d, buf, nbytes); if(n < 0) _syserrno(); return n; }
void _thread_exit(char *fname, int lineno, char *string) { char s[256]; /* Prepare an error message string: */ snprintf(s, sizeof(s), "Fatal error '%s' at line %d in file %s (errno = %d)\n", string, lineno, fname, errno); /* Write the string to the standard error file descriptor: */ __sys_write(2, s, strlen(s)); /* Force this process to exit: */ /* XXX - Do we want abort to be conditional on _PTHREADS_INVARIANTS? */ #if defined(_PTHREADS_INVARIANTS) abort(); #else __sys_exit(1); #endif }
int _debug_putchar(char c) { __sys_write(0, &c, 1); return 1; }