10 More Discussions You Might Find Interesting
1. UNIX for Beginners Questions & Answers
I wish to pull out a list of all user ids on the system, including the privileged ids, the groups to which they belong to. Sometimes after deleting an id also, its home dir does not get deleted or an entry is left behind in /etc/passwd.
Can someone help me with a script to achieve both. (2 Replies)
Discussion started by: ggayathri
2 Replies
2. Shell Programming and Scripting
I am working on converting shell to Perl script. In shell we have built in function
trap
Do you know alternative in Perl or actually we don't need it?
Thanks for contribution (3 Replies)
Discussion started by: digioleg54
3 Replies
3. Shell Programming and Scripting
Hi Everyone,
I just need a shell script which automatically gives the list of NT IDs mean the Usernames from the list of email ids. We have around 140 users from AMERICAS,ASIAPACIFIC and EMEA User Directories and we have their email ids.For ex. i have email id called naveen-kumar.dasu@hp.com... (7 Replies)
Discussion started by: naveen.dasu
7 Replies
4. UNIX for Dummies Questions & Answers
I wanted to send email to list of people using mailx in unix. I am getting the emailds from a oracle table and getting the ids in a variable. Shell script is shown below:
-----------------------------------------------------------------------
filename=testdata921 export filename... (5 Replies)
Discussion started by: sasi02
5 Replies
5. Red Hat
please help me in this script
shell script :1
***********
>cat file1.sh
#!/bin/bash
echo "this is first file"
function var()
{
a=10
b=11
}
function var_1()
{
c=12
d=13 (2 Replies)
Discussion started by: ponmuthu
2 Replies
6. Shell Programming and Scripting
Legends,
Can you please debug, what's wrong with the below code.
I am gettng unexpected token error
RebuldPF()
(
#Changing the directory to data directory where the pf exists.
cd /home/sandeep/files
#Listing the names of the Pricefiles for rebuilding
echo "The following pricefiles will... (6 Replies)
Discussion started by: sdosanjh
6 Replies
7. Shell Programming and Scripting
This is my function which is creating three variables based on counter & writing these variable to database by calling another function writeRecord
but only one record is getting wrote in DB.... Please advise ASAP...:confused:
function InsertFtg
{
FTGSTR=""
echo "Saurabh is GREAT $#"
let... (2 Replies)
Discussion started by: omkar.sonawane
2 Replies
8. Shell Programming and Scripting
SUN os KSH
ERROR_CHK () {
ERR_DATA="$ABC"
if `echo "$ABC" | egrep 'PLS|ERROR|ORA'` ; then
echo "Failed: Can't execute procedure ${PRG_NAME} ERROR found "
return 1
else
echo "Info : ${PRG_NAME} done"
fi
}
my function fails iwth
below message
"ERROR: not found"
I think i... (0 Replies)
Discussion started by: Amresh Dubey
0 Replies
9. UNIX for Advanced & Expert Users
Hi,
is there any way we can see user defined functions in a shell?
thanks in advance,
-Ashish (2 Replies)
Discussion started by: shriashishpatil
2 Replies
10. Shell Programming and Scripting
Let say there is a module fileselection module written in c language which returns the file name. Is it possible to get the file name from the file selection module directly, I mean can we call a c function directly in shell script without doing executable. If possible then how it can be... (1 Reply)
Discussion started by: surjyap
1 Replies
MAKECONTEXT(3) Linux Programmer's Manual MAKECONTEXT(3)
NAME
makecontext, swapcontext - manipulate user context
SYNOPSIS
#include <ucontext.h>
void makecontext(ucontext_t *ucp, void (*func)(), int argc, ...);
int swapcontext(ucontext_t *oucp, ucontext_t *ucp);
DESCRIPTION
In a System V-like environment, one has the type ucontext_t defined in <ucontext.h> and the four functions getcontext(2), setcontext(2),
makecontext() and swapcontext() that allow user-level context switching between multiple threads of control within a process.
For the type and the first two functions, see getcontext(2).
The makecontext() function modifies the context pointed to by ucp (which was obtained from a call to getcontext(2)). Before invoking make-
context(), the caller must allocate a new stack for this context and assign its address to ucp->uc_stack, and define a successor context
and assign its address to ucp->uc_link.
When this context is later activated (using setcontext(2) or swapcontext()) the function func is called, and passed the series of integer
(int) arguments that follow argc; the caller must specify the number of these arguments in argc. When this function returns, the successor
context is activated. If the successor context pointer is NULL, the thread exits.
The swapcontext() function saves the current context in the structure pointed to by oucp, and then activates the context pointed to by ucp.
RETURN VALUE
When successful, swapcontext() does not return. (But we may return later, in case oucp is activated, in which case it looks like swapcon-
text() returns 0.) On error, swapcontext() returns -1 and sets errno appropriately.
ERRORS
ENOMEM Insufficient stack space left.
VERSIONS
makecontext() and swapcontext() are provided in glibc since version 2.1.
CONFORMING TO
SUSv2, POSIX.1-2001. POSIX.1-2008 removes the specifications of makecontext() and swapcontext(), citing portability issues, and recommend-
ing that applications be rewritten to use POSIX threads instead.
NOTES
The interpretation of ucp->uc_stack is just as in sigaltstack(2), namely, this struct contains the start and length of a memory area to be
used as the stack, regardless of the direction of growth of the stack. Thus, it is not necessary for the user program to worry about this
direction.
On architectures where int and pointer types are the same size (e.g., x86-32, where both types are 32 bits), you may be able to get away
with passing pointers as arguments to makecontext() following argc. However, doing this is not guaranteed to be portable, is undefined
according to the standards, and won't work on architectures where pointers are larger than ints. Nevertheless, starting with version 2.8,
glibc makes some changes to makecontext(), to permit this on some 64-bit architectures (e.g., x86-64).
EXAMPLE
The example program below demonstrates the use of getcontext(2), makecontext(), and swapcontext(). Running the program produces the fol-
lowing output:
$ ./a.out
main: swapcontext(&uctx_main, &uctx_func2)
func2: started
func2: swapcontext(&uctx_func2, &uctx_func1)
func1: started
func1: swapcontext(&uctx_func1, &uctx_func2)
func2: returning
func1: returning
main: exiting
Program source
#include <ucontext.h>
#include <stdio.h>
#include <stdlib.h>
static ucontext_t uctx_main, uctx_func1, uctx_func2;
#define handle_error(msg)
do { perror(msg); exit(EXIT_FAILURE); } while (0)
static void
func1(void)
{
printf("func1: started
");
printf("func1: swapcontext(&uctx_func1, &uctx_func2)
");
if (swapcontext(&uctx_func1, &uctx_func2) == -1)
handle_error("swapcontext");
printf("func1: returning
");
}
static void
func2(void)
{
printf("func2: started
");
printf("func2: swapcontext(&uctx_func2, &uctx_func1)
");
if (swapcontext(&uctx_func2, &uctx_func1) == -1)
handle_error("swapcontext");
printf("func2: returning
");
}
int
main(int argc, char *argv[])
{
char func1_stack[16384];
char func2_stack[16384];
if (getcontext(&uctx_func1) == -1)
handle_error("getcontext");
uctx_func1.uc_stack.ss_sp = func1_stack;
uctx_func1.uc_stack.ss_size = sizeof(func1_stack);
uctx_func1.uc_link = &uctx_main;
makecontext(&uctx_func1, func1, 0);
if (getcontext(&uctx_func2) == -1)
handle_error("getcontext");
uctx_func2.uc_stack.ss_sp = func2_stack;
uctx_func2.uc_stack.ss_size = sizeof(func2_stack);
/* Successor context is f1(), unless argc > 1 */
uctx_func2.uc_link = (argc > 1) ? NULL : &uctx_func1;
makecontext(&uctx_func2, func2, 0);
printf("main: swapcontext(&uctx_main, &uctx_func2)
");
if (swapcontext(&uctx_main, &uctx_func2) == -1)
handle_error("swapcontext");
printf("main: exiting
");
exit(EXIT_SUCCESS);
}
SEE ALSO
getcontext(2), sigaction(2), sigaltstack(2), sigprocmask(2), sigsetjmp(3)
COLOPHON
This page is part of release 3.44 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/.
GNU
2009-03-31 MAKECONTEXT(3)