What happens on opening /dev/tty failure?


 
Thread Tools Search this Thread
Top Forums Programming What happens on opening /dev/tty failure?
# 1  
Old 03-01-2010
What happens on opening /dev/tty failure?

Since the existence of /dev/tty is not guaranteed, what happens when an attempt is made to open /dev/tty and there's no controlling terminal?

Will it fail, or open /dev/null instead? Or do something else?

So is checking for NULL in the code below a safe way of checking whether opening /dev/tty was sucessful? If not how should it be checked?
Code:
FILE* fp = fopen("/dev/tty", "r");
if (fp == NULL)
    OopsBetterDoSomething();

int c = fgetc(fp);
fclose(fp);

Many thanks all.
# 2  
Old 03-01-2010
Checking to see that the stream pointer is NULL/not NULL is okay.

What happens in the case that stdin is redirected, which is, I think, what you may want.
try something like this:
Code:
File *in=NULL;
if( isatty(0) ) 
   in=fopen("dev/tty", "r");  
else
  in=stdin;
if(in==NULL) 
   barf();

Your best bet is to refer to Steven's "Advanced Programming in the UNIX Environment"
# 3  
Old 03-01-2010
Thanks Jim.

The code I posted is the code to handle 'what happens if stdin is redirected'. My call to isatty() is just above the snippet I posted. Smilie

Cheers.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simply question about capturing output to /dev/tty

Suppose another person wrote the following one-line shell script: echo $RANDOM > /dev/tty QUESTION #1: How can the random number, which is output to the terminal by this script, be captured in a variable? QUESTION #2: How can this be done in a cron job? Specific code, whether in ksh or... (1 Reply)
Discussion started by: Paul R
1 Replies

2. AIX

Error opening device: /dev/fscsi0

Hello, One one of my AIX boxes I'm having the following errror: fcstat fcs0: Port Speed (supported): 4 GBIT Error opening device: /dev/fscsi0 errno: 0000003d Has anyone encountered similar errors? Thank you! (1 Reply)
Discussion started by: aixn00b
1 Replies

3. UNIX for Dummies Questions & Answers

Reading password from /dev/tty

hi, From the below script: ##########################################pwd_auth.sh######################################################################################## #Author: Pandeeswaran Bhoopathy #Written on:26th Jan 2012 2:00PM #This script describes the feature of stty and illustrates... (3 Replies)
Discussion started by: pandeesh
3 Replies

4. UNIX for Dummies Questions & Answers

/dev/tty find last modified time

what can I use to find the last modified time of a /dev/tty ? (4 Replies)
Discussion started by: l flipboi l
4 Replies

5. Programming

Create a pipe to /dev/tty

Hello everybody: I have a child process which reads a password from /dev/tty, as far as I know file descriptors for the child process can be seen by using lsof, so I want to connect to such device in order to send the password through a pipe, how could I do that? (2 Replies)
Discussion started by: edgarvm
2 Replies

6. UNIX for Dummies Questions & Answers

read from terminal/keyboard > /dev/tty

Hi, I need to provide more than one character to "> /dev/tty" through terminal/keyboard input, I have this: ok=false while do echo " Enter r1 to reformat " > /dev/tty read choice case $choice in ) echo " bla bla bla " ;; done However, in this way,... (3 Replies)
Discussion started by: Gery
3 Replies

7. Programming

sniff /dev/tty

hello all, Being root, I would like to log user activity (also multiple root activity), i don't really like history file based logging, lets assume that users have access to their .profile. I would like to write a monitoring daemon in C that would capture /dev/ttys, so I need to do a... (0 Replies)
Discussion started by: wayward
0 Replies

8. Solaris

What is /dev/tty /dev/null and /dev/console

Hi, Anyone can help My solaris 8 system has the following /dev/null , /dev/tty and /dev/console All permission are lrwxrwxrwx Can this be change to a non-world write ?? any impact ?? (12 Replies)
Discussion started by: civic2005
12 Replies

9. UNIX for Advanced & Expert Users

timeout opening writing control channel /dev/initctl problem occur i cant shoudown

Hi... This is message that occurs when i am trying to shutdown the linux system timeout opening writing control channel /dev/initctl how can i shutdown what is the problem here.. Thanks in advance ... (2 Replies)
Discussion started by: arunkumar_mca
2 Replies

10. UNIX for Dummies Questions & Answers

Cannot open "/dev/tty"

Hi, When it proccesing the backup with cpio report this message: Cannot open "/dev/tty" and cancel de backup. Cuando se procesa la tarea del backup reporta el error: Cannot open "/dev/tty" y cancela el backup y no termina correctamente, a que se devera esta advertencia. Gracias. Thacks.... (3 Replies)
Discussion started by: cmr88
3 Replies
Login or Register to Ask a Question