02-24-2008
Problem with handling SIGINT
For a program I am designing, which involves handling the keyboard input Ctrl^c (SIGINT), it is taking ages for the program to actually recognise and perform the corresponding action whenever I run it and hit Ctrl^C at the CL. I have to do at least 3 Ctrl^Cs before the program will actually register and handle SIGINT appropriately.
Currently Im using signal() to map the various types of unix signals (i.e SIGINT, SIGSTSP) to handler functions I have defined in my program. What the handler functions do is call exit(0) (which quits the program) whenever the corresponding signal has been received by the program. As I mentioned before, it is taking several Ctrl^Cs to get the handler functions to be invoked, when it should just be 1 Ctrl^C.
Im unsure what could be causing my problem. Please feel free to make any suggestions.
10 More Discussions You Might Find Interesting
1. HP-UX
Hi All,
i am running a oracle procedure which writes a file . The same file is picked up by another script which runs in a cron after every 5 minutes.
Now the problem is that sometimes my script picks up a file while the procedure is still writing data in the file.
is there is any way i... (4 Replies)
Discussion started by: saurabhjain
4 Replies
2. UNIX for Dummies Questions & Answers
Hi,
I am opening a file......then i am wrting some data into it......and i am reopening the file again but ......i get a error cannot open file.......
$::file= "\adder\testfile.txt"
open(TEST1,$::file);
some write operation
close(TEST1)
open(TEST1,$::file) 'I GET A ERROR CAN OPEN... (2 Replies)
Discussion started by: vivekshankar
2 Replies
3. Shell Programming and Scripting
Hi,
I have an application.xml file like
</dependency>
<artifactId>_AdminServicesEAR</artifactId>
<version>1.0.0-20080521.085352-1</version>
<context-root>oldvalue</context-root>
<type>ear</type>
<DOCTYPE "abc/xyz/eft">
<NewTag>value123</xyz>
... (4 Replies)
Discussion started by: subin_bala
4 Replies
4. Programming
Hi all,
I have this method to read a string from a STDIN:
void readLine(char* inputBuffer){
fgets (inputBuffer, MAX_LINE, stdin);
fflush(stdin);
/* remove '\n' char from string */
if(strlen(inputBuffer) != 0)
inputBuffer = '\0';
}
All work fine but if i... (1 Reply)
Discussion started by: hurricane86
1 Replies
5. Programming
i wrote handler for sigsegv such that i can allocate memory for a variable to which
sigsegv generated for illlegal acces of memory.
my code is
#include <signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *j;
void segv_handler(int dummy)
{
j=(char *)malloc(10);
... (4 Replies)
Discussion started by: pavan6754
4 Replies
6. Programming
hi friends i have a problem in signal handling ...
let me explain my problem clearly..
i have four process ..
main process forks two child process and each child process again forks another new process respectively...
the problem is whenever i kill the child process it is reforking and the... (2 Replies)
Discussion started by: senvenugopal
2 Replies
7. Infrastructure Monitoring
I can get this working, but if something is down I get an error and the script does not move on. I can not get the "else" function working. What might I be doing wrong?
use SNMP::Simple
my %ios = ();
$list="list.list";
open(DAT, $list) || die("Can't Open List");
@raw_data=<DAT>;... (4 Replies)
Discussion started by: mrlayance
4 Replies
8. UNIX for Dummies Questions & Answers
May i know what are the possible causes for SIGINT other than ctrl-c?
Thanks (17 Replies)
Discussion started by: pandeesh
17 Replies
9. Shell Programming and Scripting
Hi all,
i am trying to process a list of values in FILE like this:
aaa:bbb
ccc:ddd
eee:fff
With the following logic:
for INFO in FILE
do
export F1=`cut -f1,3,5,7 -d":" < FILE`
export F2=`cut -f2,3,5,7 -d":" < FILE`
ssh $F1 bash <<EOF
echo $F1
echo $F2
date (10 Replies)
Discussion started by: jonnyd
10 Replies
10. Shell Programming and Scripting
The following command will run and wait for input from the user.
/usr/sap/SAP/webdisp/wdispmon pf=/usr/sap/SAP/webdisp/profile
What I would like to do is (in one command):
- Add the above line to a ksh script
- Receive the output
- and send a SIGINT
I have seen many posts on how to... (3 Replies)
Discussion started by: sapsid
3 Replies
LEARN ABOUT LINUX
ctrlaltdel
CTRLALTDEL(8) Linux Programmer's Manual CTRLALTDEL(8)
NAME
ctrlaltdel - set the function of the Ctrl-Alt-Del combination
SYNOPSIS
ctrlaltdel hard|soft
DESCRIPTION
Based on examination of the linux/kernel/sys.c code, it is clear that there are two supported functions that the Ctrl-Alt-Del sequence can
perform: a hard reset, which immediately reboots the computer without calling sync(2) and without any other preparation; and a soft reset,
which sends the SIGINT (interrupt) signal to the init process (this is always the process with PID 1). If this option is used, the init(8)
program must support this feature. Since there are now several init(8) programs in the Linux community, please consult the documentation
for the version that you are currently using.
ctrlaltdel is usually used in the /etc/rc.local file.
FILES
/etc/rc.local
SEE ALSO
simpleinit(8), init(8)
AUTHOR
Peter Orbaek (poe@daimi.aau.dk)
AVAILABILITY
The ctrlaltdel command is part of the util-linux package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
Linux 1.2 25 October 1993 CTRLALTDEL(8)