Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Apr 2002 04:14:55 -0800 (PST)
From:      Murray Nesbitt <murray@unixporting.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/36784: Can't fcntl(fd, F_SETFL, ...) on a pseudo-tty
Message-ID:  <200204051214.g35CEtL66960@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         36784
>Category:       kern
>Synopsis:       Can't fcntl(fd, F_SETFL, ...) on a pseudo-tty
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 05 04:20:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Murray Nesbitt
>Release:        4.5-RELEASE
>Organization:
>Environment:
FreeBSD bp6.unixporting.com 4.5-RELEASE FreeBSD 4.5-RELEASE #0: Tue Apr  2 05:09:44 GMT 2002 root@bp6.unixporting.com:/usr/src/sys/compile/MYKERNEL.bp6  i386
>Description:

fcntl(fd, F_SETFL, arg) on a pseudo-tty fails with EAGAIN,
even if arg is the result of a call to fcntl(fd, F_GETFL);

This doesn't seem right.  FWIW, same code works on Linux and 
Solaris.

Also FWIW, this is preventing us from porting our application to FreeBSD.

>How-To-Repeat:
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>

main()
{
int status, fd;

    fd = open("/dev/ptyp9", 2);
    fprintf(stderr, "fd: %d\n", fd);
    errno = 0;
    status = fcntl(fd, F_GETFL);
    fprintf(stderr, "status: %d, errno: %d\n", status, errno);
    errno = 0;
    status = fcntl(fd, F_SETFL, status);
    fprintf(stderr, "status: %d, errno: %d\n", status, errno);
}
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200204051214.g35CEtL66960>