Sponsored Content
Top Forums Programming How to programm TTY devices under UNIX platform? Post 12226 by Perderabo on Friday 21st of December 2001 10:57:43 AM
Old 12-21-2001
There is the old unix way to do this and the new posix way. I wrote a program to put the tty into raw mode using both methods so I could compare them. You should probably understand both techniques since there is a lot of old code out there. But I think the posix revision is a win, so I would suggest going the posix route with new code. I would add the following man pages to your list:

tcattribute(3c)
cfspeed(3C)
tccontrol(3C)

You should use the routines in cfspeed(3C) to change the baud rate.

Here is the sample program that I wrote:
Code:
/*   #define OLD_TERMIO  */

#ifdef __STDC__
#define PROTOTYPICAL
#endif
#ifdef __cplusplus
#define PROTOTYPICAL
#endif

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#ifdef OLD_TERMIO
#include <termio.h>
#else
#include <termios.h>
#endif

#ifdef PROTOTYPICAL
int main(int argc, char *argv[])
#else
main(argc,argv)
char *argv[];
#endif

{
#ifdef OLD_TERMIO
        struct termio orig,now;
#else
        struct termios orig,now;
#endif
        int c, i, rc, done;
        setvbuf(stdout, NULL, _IONBF ,0);

#ifdef OLD_TERMIO
        ioctl(0, TCGETA, (char *) &orig);
#else
        tcgetattr(0, &orig);
#endif
        now=orig;
        now.c_lflag &= ~(ISIG|ICANON|ECHO);
        now.c_cc[VMIN]=1;
        now.c_cc[VTIME]=2;
#ifdef OLD_TERMIO
        ioctl(0,TCSETA, (char *) &now);
#else
        tcsetattr(0, TCSANOW, &now);
#endif
        done=0;
        while(!done) {
                printf("hit a key: ");
                c=getchar();
                printf(" got a  %03X \n", c);
                done = c=='q';
        }
#ifdef OLD_TERMIO
        ioctl(0,TCSETA, (char *) &orig);
#else
        tcsetattr(0, TCSANOW, &orig);
#endif
        exit(0);
}


Last edited by Perderabo; 01-16-2005 at 02:48 PM.. Reason: remove html which is no longer supported
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

UNIX problem? Unix programm runs windows 2000 CPU over 100%

Okee problems...!! What is happening: Unix server with some programms, workstations are windows 2000, the workstations work good but when you start a programm on the Unix server the CPU of the workstations go to 100% usage resulting that the system gets very slow. The programm well its running so... (2 Replies)
Discussion started by: zerocool
2 Replies

2. UNIX for Advanced & Expert Users

Porting of Windows written unix scripts to unix platform

Can anybody help me in finding out a solution for the problem below? When we write .unix or .sh files in windows OS and port them to Unix platforms there is a character ^M inserted at the end of each line of the script file. During ftp porting I set the transfer mode as ASCII for the script... (7 Replies)
Discussion started by: tamilselvi
7 Replies

3. Programming

how do i run am encrpyrtic programm on unix

how do i run am encrpyrtic programm on unix, (4 Replies)
Discussion started by: ghoz
4 Replies

4. Shell Programming and Scripting

How to embeded programm within programm

Hi, How to embeded programme within perl programme. Shankarao (2 Replies)
Discussion started by: shankarao
2 Replies

5. AIX

Difference between tty and console devices ?

Hi, What is the diference between these two ? thanks Vilius (3 Replies)
Discussion started by: vilius
3 Replies

6. UNIX for Advanced & Expert Users

How can I remotely take unix/linux tty control!?

Hello everyone!. I am wondering if it is possible to take control of a tty session???!!!. For example: imagine you are running a command in a unix server that will take 12 hours to compleate... now, imagine you are at your home and you want to check how the command is performing or if errors... (2 Replies)
Discussion started by: dragonov7
2 Replies

7. UNIX for Dummies Questions & Answers

What are pseudo-tty devices? Is my /etc/securetty file contains any?

Hi , I have searched wiki for pseudo tty devices but it was very complex for me to understand. Can any one help me understanding concept behind pseudo-tty in layman language? According to security manual of our org /etc/securetty files shouldn't have any pseudo tty devices. i understand ttyX... (5 Replies)
Discussion started by: pinga123
5 Replies

8. Shell Programming and Scripting

unix shell programm(need urgent Help)

Hi guys, i am new to shell can u please explain how to get those two outputs in temp1 i have i/p like abcd edk lkg jkl loop i need o/p abcd ********* edk********** lkg *********** jkl *********** loop************ need o/p abcd *************** (2 Replies)
Discussion started by: ashokkrishna063
2 Replies

9. Shell Programming and Scripting

Request to checkVenn diagram issue solve by Unix programm

Hello Any Unix programm can help me to solve thsi issue: I have 2 venn digrams please checke the attached file for pictures of venn diagram for eg red is A yellow is B and green is C..Please see attached file for Venn diagrams In one ..... I have 3 data set A , B and C Venn diagram... (0 Replies)
Discussion started by: manigrover
0 Replies

10. Shell Programming and Scripting

Python: Redirecting to tty and reading from tty

In bash, you can do something like this: #!/bin/bash echo -n "What is your name? " > /dev/tty read thename < /dev/tty How can I do the same in python? I have a python script that has the following content: #!/usr/bin/python2.7 import getpass import sys import telnetlib import... (2 Replies)
Discussion started by: SkySmart
2 Replies
STRUCT 
IRQ_DESC(9) Structures STRUCT IRQ_DESC(9) NAME
struct_irq_desc - interrupt descriptor SYNOPSIS
struct irq_desc { unsigned int irq; struct timer_rand_state * timer_rand_state; unsigned int * kstat_irqs; #ifdef CONFIG_INTR_REMAP struct irq_2_iommu * irq_2_iommu; #endif irq_flow_handler_t handle_irq; struct irq_chip * chip; struct msi_desc * msi_desc; void * handler_data; void * chip_data; struct irqaction * action; unsigned int status; unsigned int depth; unsigned int wake_depth; unsigned int irq_count; unsigned long last_unhandled; unsigned int irqs_unhandled; raw_spinlock_t lock; #ifdef CONFIG_SMP cpumask_var_t affinity; unsigned int node; #ifdef CONFIG_GENERIC_PENDING_IRQ cpumask_var_t pending_mask; #endif #endif atomic_t threads_active; wait_queue_head_t wait_for_threads; #ifdef CONFIG_PROC_FS struct proc_dir_entry * dir; #endif const char * name; }; MEMBERS
irq interrupt number for this descriptor timer_rand_state pointer to timer rand state struct kstat_irqs irq stats per cpu irq_2_iommu iommu with this irq handle_irq highlevel irq-events handler [if NULL, __do_IRQ] chip low level interrupt hardware access msi_desc MSI descriptor handler_data per-IRQ data for the irq_chip methods chip_data platform-specific per-chip private data for the chip methods, to allow shared chip implementations action the irq action chain status status information depth disable-depth, for nested irq_disable calls wake_depth enable depth, for multiple set_irq_wake callers irq_count stats field to detect stalled irqs last_unhandled aging timer for unhandled count irqs_unhandled stats field for spurious unhandled interrupts lock locking for SMP affinity IRQ affinity on SMP node node index useful for balancing pending_mask pending rebalanced interrupts threads_active number of irqaction threads currently running wait_for_threads wait queue for sync_irq to wait for threaded handlers dir /proc/irq/ procfs entry name flow handler name for /proc/interrupts output AUTHORS
Thomas Gleixner <tglx@linutronix.de> Author. Ingo Molnar <mingo@elte.hu> Author. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 STRUCT IRQ_DESC(9)
All times are GMT -4. The time now is 03:53 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy