Sponsored Content
Top Forums Programming sigaction structure + compilation prob Post 302169631 by JamesGoh on Thursday 21st of February 2008 09:18:21 PM
Old 02-21-2008
sigaction structure + compilation prob

For a program I am writing, Im using sigaction to catch and handle signals (i.e. SIGINT, SIGSTP) in my program.

Ive declared and initalised the corresponding sigaction structure as follows

Code:
struct sigaction event;
event.sa_handler = MySigHandler; /* The signal handling function */
event.sa_flags=0;
sigemptyset(&event.sa_mask);
sigaction(SIGINT,&event,NULL);

However when I compile the program, I get an error message saying storage size of 'event' (the sigaction structure) is unknown.

Im lost to know what the message means and how I could have possibly created the error. Help would be highly appreciated

cheers
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

prob

When i am trying to $uncompress tress.dmp.Z I am getting tress.dmp.Z permission denied. What action i have to perform to unzip or uncompress It has rw-r--r-- permissions When i am trying to change the permissions chmod 744 it says. chmod: Warning: can't change tress.dmp.Z Just... (1 Reply)
Discussion started by: dreams5617
1 Replies

2. UNIX for Dummies Questions & Answers

grep prob

hi, how can i saerch for foll pattern the line contains many entries: xxx xxxx ddd ffff gggg 30% rr eeee eeee rrrr rrrr 100% rr eeee eeee rrrr rrrr 43% how can i display lines having size greater than 40%?what pattern shud i use in grep? thanks! regards vivek.s (1 Reply)
Discussion started by: vivekshankar
1 Replies

3. UNIX for Dummies Questions & Answers

Copying a Directory Structure to a new structure

Hi all Is it possible to copy a structure of a directory only. e.g. I have a file with the following entries that is a result of a find :- /dir1/dir2/file.dbf /dir1/dir2/dir3/file1.dbf /dir1/file.dbf I want to copy these to a directory and keep the structure however starting at a new dir... (8 Replies)
Discussion started by: jhansrod
8 Replies

4. AIX

memory prob

There is problem in my system whenever i run a command lsattr -El mem0 it shows 3gb memory and when i run lscfg -vp | grep Size it shows 8 modules of 512 mb. it means it shows 4 gb how is it possible. (1 Reply)
Discussion started by: vjm
1 Replies

5. Shell Programming and Scripting

prob with ssh

I am executing this on say host1 export dn=/home/abhi export fn=file\"*\" file_path=$dn/$fn set -A files $(ssh host2 "eval echo $file_path") echo files= ${files} So the purpose is to store in array "files" .. the o/p of cmd executed in host2... this script works fine if the files r... (1 Reply)
Discussion started by: abzi
1 Replies

6. Shell Programming and Scripting

Sorting prob

Hi I have a directory having following three set of files as follows: test.20060804 test.20060801 test.20060802 I want to list the latest file which is less than 20060803. in this case, it will be test.20060802. How can i achieve the same? Any pointers to above will be appreciated. ... (7 Replies)
Discussion started by: Vikas Sood
7 Replies

7. UNIX for Advanced & Expert Users

MV files from one directory structure(multiple level) to other directory structure

Hi, I am trying to write a script that will move all the files from source directory structure(multiple levels might exist) to destination directory structure. If a sub folder is source doesnot exist in destination then I have to skip and goto next level. I also need to delete the files in... (4 Replies)
Discussion started by: srmadab
4 Replies

8. Programming

Search attributes in one structure using the values from another structure

Hello Groups I am trying to find out ways of comparing a value from a 'c' structure to a value in another 'C' structure. the 'C' structure can be a List or liked list as it contains lot many records. if we loop it in both the structures it is going to consume time. I am looking for a simple... (3 Replies)
Discussion started by: dhanamurthy
3 Replies

9. UNIX for Advanced & Expert Users

NFS prob

Hi all, i want mount directory with permission #NFS Server = FreeBSD /etc/export = /data -alldirs -network 192.168.0.0 -mask 255.255.255.0 #NFS Client = Ubuntu 192.168.0.8:/data /dir nfs intr but i m unable to create folder in /dir whts the wrong? Please... (4 Replies)
Discussion started by: jagnikam
4 Replies

10. Solaris

Solaris 8 prob

Pls tell me how can i recover adeleted user in solaris 8. Please help me I'm a newby thanks aamer (4 Replies)
Discussion started by: aamer
4 Replies
sigaction(2)							   System Calls 						      sigaction(2)

NAME
sigaction - detailed signal management SYNOPSIS
#include <signal.h> int sigaction(int sig, const struct sigaction *restrict act, struct sigaction *restrict oact); DESCRIPTION
The sigaction() function allows the calling process to examine or specify the action to be taken on delivery of a specific signal. See sig- nal.h(3HEAD) for an explanation of general signal concepts. The sig argument specifies the signal and can be assigned any of the signals specified in signal.h(3HEAD) except SIGKILL and SIGSTOP. If the argument act is not NULL, it points to a structure specifying the new action to be taken when delivering sig. If the argument oact is not NULL, it points to a structure where the action previously associated with sig is to be stored on return from sigaction(). The sigaction structure includes the following members: void (*sa_handler)(); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; The storage occupied by sa_handler and sa_sigaction may overlap, and a standard-conforming application (see standards(5)) must not use both simultaneously. The sa_handler member identifies the action to be associated with the specified signal, if the SA_SIGINFO flag (see below) is cleared in the sa_flags field of the sigaction structure. It may take any of the values specified in signal.h(3HEAD) or that of a user specified sig- nal handler. If the SA_SIGINFO flag is set in the sa_flags field, the sa_sigaction field specifies a signal-catching function. The sa_mask member specifies a set of signals to be blocked while the signal handler is active. On entry to the signal handler, that set of signals is added to the set of signals already being blocked when the signal is delivered. In addition, the signal that caused the handler to be executed will also be blocked, unless the SA_NODEFER flag has been specified. SIGSTOP and SIGKILL cannot be blocked (the system silently enforces this restriction). The sa_flags member specifies a set of flags used to modify the delivery of the signal. It is formed by a logical OR of any of the follow- ing values: SA_ONSTACK If set and the signal is caught, and if the thread that is chosen to processes a delivered signal has an alternate signal stack declared with sigaltstack(2), then it will process the signal on that stack. Otherwise, the signal is delivered on the thread's normal stack. SA_RESETHAND If set and the signal is caught, the disposition of the signal is reset to SIG_DFL and the signal will not be blocked on entry to the signal handler (SIGILL, SIGTRAP, and SIGPWR cannot be automatically reset when delivered; the system silently enforces this restriction). SA_NODEFER If set and the signal is caught, the signal will not be automatically blocked by the kernel while it is being caught. SA_RESTART If set and the signal is caught, functions that are interrupted by the execution of this signal's handler are transparently restarted by the system, namely fcntl(2), ioctl(2), wait(3C), waitid(2), and the following functions on slow devices like terminals: getmsg() and getpmsg() (see getmsg(2)); putmsg() and putpmsg() (see putmsg(2)); pread(), read(), and readv() (see read(2)); pwrite(), write(), and writev() (see write(2)); recv(), recvfrom(), and recvmsg() (see recv(3SOCKET)); and send(), sendto(), and sendmsg() (see send(3SOCKET)). Otherwise, the function returns an EINTR error. SA_SIGINFO If cleared and the signal is caught, sig is passed as the only argument to the signal-catching function. If set and the signal is caught, two additional arguments are passed to the signal-catching function. If the second argument is not equal to NULL, it points to a siginfo_t structure containing the reason why the signal was generated (see sig- info.h(3HEAD)); the third argument points to a ucontext_t structure containing the receiving process's context when the signal was delivered (see ucontext.h(3HEAD)). SA_NOCLDWAIT If set and sig equals SIGCHLD, the system will not create zombie processes when children of the calling process exit. If the calling process subsequently issues a wait(3C), it blocks until all of the calling process's child processes terminate, and then returns -1 with errno set to ECHILD. SA_NOCLDSTOP If set and sig equals SIGCHLD, SIGCHLD will not be sent to the calling process when its child processes stop or continue. RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is returned, errno is set to indicate the error, and no new signal handler is installed. ERRORS
The sigaction() function will fail if: EINVAL The value of the sig argument is not a valid signal number or is equal to SIGKILL or SIGSTOP. In addition, if in a multithreaded process, it is equal to SIGWAITING, SIGCANCEL, or SIGLWP. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ |MT-Level |Async-Signal-Safe | +-----------------------------+-----------------------------+ |Standard |See standards(5). | +-----------------------------+-----------------------------+ SEE ALSO
kill(1), Intro(2), exit(2), fcntl(2), getmsg(2), ioctl(2), kill(2), pause(2), putmsg(2), read(2), sigaltstack(2), sigprocmask(2), sigsend(2), sigsuspend(2), waitid(2), write(2), recv(3SOCKET), send(3SOCKET), siginfo.h(3HEAD), signal(3C), signal.h(3HEAD), sigsetops(3C), ucontext.h(3HEAD), wait(3C), attributes(5), standards(5) NOTES
The handler routine can be declared: void handler (int sig, siginfo_t *sip, ucontext_t *ucp); The sig argument is the signal number. The sip argument is a pointer (to space on the stack) to a siginfo_t structure, which provides addi- tional detail about the delivery of the signal. The ucp argument is a pointer (again to space on the stack) to a ucontext_t structure (defined in <sys/ucontext.h>) which contains the context from before the signal. It is not recommended that ucp be used by the handler to restore the context from before the signal delivery. SunOS 5.11 23 Mar 2005 sigaction(2)
All times are GMT -4. The time now is 04:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy