mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 18:23:41 +08:00
f0d5e1f67b
2006-12-04 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/ttyname.c: Include termios.h. (ttyname): Use tcgetattr instead of isatty, don't set errno to ENOTTY. * sysdeps/unix/sysv/linux/ttyname_r.c: Include termios.h. (__ttyname_r): Use tcgetattr instead of isatty, don't set errno to ENOTTY. * io/Makefile: Add rules to build and run tst-ttyname_r test. * io/tst-ttyname_r.c: New test.
43 lines
878 B
C
43 lines
878 B
C
#include <errno.h>
|
|
#include <error.h>
|
|
#include <fcntl.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
|
|
static void do_prepare (void);
|
|
#define PREPARE(argc, argv) do_prepare ()
|
|
static int do_test (void);
|
|
#define TEST_FUNCTION do_test ()
|
|
#include <test-skeleton.c>
|
|
|
|
static int temp_fd;
|
|
|
|
static void
|
|
do_prepare (void)
|
|
{
|
|
char *temp_file;
|
|
temp_fd = create_temp_file ("tst-ttyname_r.", &temp_file);
|
|
if (temp_fd == -1)
|
|
error (1, errno, "cannot create temporary file");
|
|
}
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
int ret = 0;
|
|
char buf[sysconf (_SC_TTY_NAME_MAX) + 1];
|
|
int res = ttyname_r (-1, buf, sizeof (buf));
|
|
if (res != EBADF)
|
|
{
|
|
printf ("1st ttyname_r returned with res %d\n", res);
|
|
ret++;
|
|
}
|
|
res = ttyname_r (temp_fd, buf, sizeof (buf));
|
|
if (res != ENOTTY)
|
|
{
|
|
printf ("2nd ttyname_r returned with res %d\n", res);
|
|
ret++;
|
|
}
|
|
return ret;
|
|
}
|