09-10-2006
longjmp blows away all of the intervening stack pointers between it and setjmp.
There is no intervening information - the stack frames and SP's are gone, a lot like they never happened.
9 More Discussions You Might Find Interesting
1. Programming
Im trying to connect to a particular IP address and I'm tying to use gethostbyaddr() and inet_addr() to do this. However, when I tried using inet_addr(), I always get a return value of 0 when I tried to connect to "172.21.16.238". Hope someone here could help me on this. I already tried using inet_... (1 Reply)
Discussion started by: soulfactory2002
1 Replies
2. UNIX for Dummies Questions & Answers
Is there a command where I can pipe my grep into it and it will output it with spaces rather than returns?
Example
I want to turn
prompt$ grep blah file
blah
blah
into this
prompt$ grep blah file | someCommand
blah blah (1 Reply)
Discussion started by: mrwatkin
1 Replies
3. Shell Programming and Scripting
Hi all,
I am trying to grep a .txt file for a word. When I hit enter, it returns back to $
The file is 4155402 in size and is named in this way:
*_eveningtimes_done_log.txt
I use this command, being in the same directory as the file:
grep -i "invalid" *_eveningtimes_done_log.txt
... (16 Replies)
Discussion started by: DallasT
16 Replies
4. Programming
request_irq always returns EINVAL
What am I doing wrong here ?
int mydrvr_open(struct inode *inode, struct file *filp)
{
int ret;
printk("<1> \nModule Opened!");
//disable_irq(4);
//free_irq(4, NULL);
ret = request_irq(4, &imr_interrupt_handler,IRQF_SHARED,... (0 Replies)
Discussion started by: dragonpoint
0 Replies
5. Shell Programming and Scripting
#/bin/sh
.....
#convert memory to MB
let "mmsize_a= ($mmsize)/256"
let "mminuse_a= ($mminuse)/256"
let "mmfree_a= ($mmsize_a -$mminuse_a)"
let "mmfreepercent= (($mmfree_a)/($mmsize_a))*100"
#
#format output
echo "\n\n######################" >>$sndFile
echo "\n$sysName Total Memory usage"... (3 Replies)
Discussion started by: Daniel Gate
3 Replies
6. UNIX for Dummies Questions & Answers
mon_yy=${1}
date_found=`find_end_day $mon_yy`
export_dealer_changes ${date_found}
Hello
I am trying to pull a formatted date back from the function find_end_day and pass it into the function export_dealer_changes. When I try the above the variable date_found is empty. I have tried various... (3 Replies)
Discussion started by: treemyf
3 Replies
7. Shell Programming and Scripting
Hi,
I need to return a value from the function. the value will be the output from cat command which uses random fucntion.
#!/bin/ksh
hello()
{
var1=$(`cat /dev/urandom| tr -dc 'a-zA-Z0-9-!%&()*+,-/:;<=>?_'|fold -w 10 | head -n 1`)
echo "value is" var1
return var1
}
hello
var=$?... (2 Replies)
Discussion started by: Nandy
2 Replies
8. Shell Programming and Scripting
I'm having a little trouble returning a value from a function or calling it, I'm not quite sure.
I'm calling the function here
function region_lookup_with_details {
results = $(set_region)
echo $results
}
This is the function I'm calling
function set_region {
... (8 Replies)
Discussion started by: akechnie
8 Replies
9. Shell Programming and Scripting
This returns 0 even when it does not delete any files.
Is it because -print returns 0?
RETVAL=$?
Docs_Backups=/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Documents_Backups/
Scripts_Backups=/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Script_Backups/
# create some old files
#touch -d 20120101... (4 Replies)
Discussion started by: drew77
4 Replies
LEARN ABOUT LINUX
longjmp
LONGJMP(3) Linux Programmer's Manual LONGJMP(3)
NAME
longjmp, siglongjmp - nonlocal jump to a saved stack context
SYNOPSIS
#include <setjmp.h>
void longjmp(jmp_buf env, int val);
void siglongjmp(sigjmp_buf env, int val);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
siglongjmp(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE
DESCRIPTION
longjmp() and setjmp(3) are useful for dealing with errors and interrupts encountered in a low-level subroutine of a program. longjmp()
restores the environment saved by the last call of setjmp(3) with the corresponding env argument. After longjmp() is completed, program
execution continues as if the corresponding call of setjmp(3) had just returned the value val. longjmp() cannot cause 0 to be returned.
If longjmp() is invoked with a second argument of 0, 1 will be returned instead.
siglongjmp() is similar to longjmp() except for the type of its env argument. If, and only if, the sigsetjmp(3) call that set this env
used a nonzero savesigs flag, siglongjmp() also restores the signal mask that was saved by sigsetjmp(3).
RETURN VALUE
These functions never return.
CONFORMING TO
C89, C99, and POSIX.1-2001 specify longjmp(). POSIX.1-2001 specifies siglongjmp().
NOTES
POSIX does not specify whether longjmp() will restore the signal context (see setjmp(3) for some more details). If you want to portably
save and restore signal masks, use sigsetjmp() and siglongjmp().
The values of automatic variables are unspecified after a call to longjmp() if they meet all the following criteria:
o they are local to the function that made the corresponding setjmp(3) call;
o their values are changed between the calls to setjmp(3) and longjmp(); and
o they are not declared as volatile.
Analogous remarks apply for siglongjmp().
longjmp() and siglongjmp() make programs hard to understand and maintain. If possible an alternative should be used.
SEE ALSO
setjmp(3), sigsetjmp(3)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2009-01-13 LONGJMP(3)