Add ptsname(3).
This commit is contained in:
parent
88de69487b
commit
1f742d521c
|
@ -537,6 +537,7 @@ stdlib/mkstemp.o \
|
||||||
stdlib/mkstemps.o \
|
stdlib/mkstemps.o \
|
||||||
stdlib/on_exit.o \
|
stdlib/on_exit.o \
|
||||||
stdlib/posix_openpt.o \
|
stdlib/posix_openpt.o \
|
||||||
|
stdlib/ptsname.o \
|
||||||
stdlib/rand.o \
|
stdlib/rand.o \
|
||||||
stdlib/realpath.o \
|
stdlib/realpath.o \
|
||||||
stdlib/setenv.o \
|
stdlib/setenv.o \
|
||||||
|
|
|
@ -158,7 +158,6 @@ long lrand48(void);
|
||||||
long mrand48(void);
|
long mrand48(void);
|
||||||
long nrand48(unsigned short[3]);
|
long nrand48(unsigned short[3]);
|
||||||
int posix_memalign(void**, size_t, size_t);
|
int posix_memalign(void**, size_t, size_t);
|
||||||
char* ptsname(int);
|
|
||||||
long random(void);
|
long random(void);
|
||||||
int rand_r(unsigned *);
|
int rand_r(unsigned *);
|
||||||
unsigned short *seed48(unsigned short [3]);
|
unsigned short *seed48(unsigned short [3]);
|
||||||
|
@ -171,6 +170,7 @@ void srandom(unsigned);
|
||||||
#if __USE_SORTIX || __USE_XOPEN
|
#if __USE_SORTIX || __USE_XOPEN
|
||||||
int grantpt(int);
|
int grantpt(int);
|
||||||
int unlockpt(int);
|
int unlockpt(int);
|
||||||
|
char* ptsname(int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __USE_SORTIX || 600 <= __USE_XOPEN
|
#if __USE_SORTIX || 600 <= __USE_XOPEN
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 Jonas 'Sortie' Termansen.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* unistd/ptsname.c
|
||||||
|
* Returns the path of a pseudoterminal master's slave.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#if !defined(TTY_NAME_MAX)
|
||||||
|
#include <sortix/limits.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char* ptsname(int fd)
|
||||||
|
{
|
||||||
|
static char name[TTY_NAME_MAX+1];
|
||||||
|
name[0] = '/';
|
||||||
|
name[1] = 'd';
|
||||||
|
name[2] = 'e';
|
||||||
|
name[3] = 'v';
|
||||||
|
name[4] = '/';
|
||||||
|
if ( ioctl(fd, TIOCGNAME, name + 5) < 0 )
|
||||||
|
return NULL;
|
||||||
|
return name;
|
||||||
|
}
|
Loading…
Reference in New Issue