Sponsored Content
Full Discussion: perror with signals
Top Forums UNIX for Dummies Questions & Answers perror with signals Post 302465568 by joker40 on Friday 22nd of October 2010 07:42:18 PM
Old 10-22-2010
perror with signals

I have following problem with this code..
First time trough the main loop.....
perror gives ....blocked signal:success(all other times gives illlegal seek)
Should every time trought the main loop be success??
And the perror otside of main loop...didn't change mask:success
That line of code gets executed only once just before program is done. I dont get how at that point can it be success?
Can anyone be kind to explain this please.
Code:
int main (int argc , char *argv[]){

 sigset_t s;
 sigemptyset(&s);
 sigaddset(&s,SIGINT);

 for (i = 0 ; i < 2 ; i++){
    if(sigprocmask(SIG_BLOCK,&s,NULL) == -1)
        break;
    
     perror("Blocked signal");    
    
     // do something

    if(sigprocmask(SIG_UNBLOCK.&s,NULL) == -1)
        break;


  }

  perror("didnt change mask");
  return 1;

}

 

10 More Discussions You Might Find Interesting

1. Programming

Signals In HP-UX

does the way of handling, interrupting signals in HP-UX same as that of solaris. If there is difference than what it is.?:confused: (1 Reply)
Discussion started by: kapilv
1 Replies

2. UNIX for Dummies Questions & Answers

Signals...

(posted this in the scripting forum as well, but figured it should go here) So, what's going on is this: For our program, we had to create our own shell, and if the user pressed ctrl-c just at the cmdline, then this signal would be ignored, but if there is a foreground process running, let's... (0 Replies)
Discussion started by: blind melon
0 Replies

3. Programming

Using Signals

How can use signals in a C program If i want a child program to signal it's parent program that it(child) program has completed the task that it was assigned.:confused: (2 Replies)
Discussion started by: kapilv
2 Replies

4. Programming

A question about printing error message with perror

Dear all, I use perror in order to print an error message to the standar error. For example if a C program is called without its two necessary command line parameters then : if (argc != 3) { perror("use: ./myProgram <source file> <target file>\n"); return 1; } Now the... (2 Replies)
Discussion started by: dariyoosh
2 Replies

5. Programming

does perror() set errno?

here the program gives a odd result: #include <stdio.h> int main(){ perror("first"); perror("next"); return 0; } result: first: Success next: Illegal seek why? any resonable explanation? i found no information about this in man pages. thanks in advance (2 Replies)
Discussion started by: ebd
2 Replies

6. Programming

Signals and semaphores

I have problem with my application. Application is running on embedded Linux machine. It's basically multiprotocol gateway that connects two industrial Ethernet networks. We are experiencing some kind of application hang every 2 to 3 days. It seems like both threads are still running but... (12 Replies)
Discussion started by: _thomas
12 Replies

7. UNIX for Dummies Questions & Answers

Help understanding signals

I am having trouble with folowing sigset_t s; // now s represents set of signals sigemptyset(&s) ; // initialize this set and exclude all the signals from it.is it empty? sigaddset(&s,SIGILL);//this set containts only SIGILL signal sigprocmask(SIG_BLOCK,&s,NULL);//lost on this one Can... (3 Replies)
Discussion started by: joker40
3 Replies

8. UNIX for Dummies Questions & Answers

Blocking signals

I know how to add signal to a set. But what if I want to add 2 or 3 signals to the set. I know I can use sigaddset (&set,SIGBUS)....but what if I want to add SIGBUS and SIGALRM at once. Do i have to do it like this.. sigaddset (&set,SIGBUS); sigaddset (&set,SIGALRM); Is there another way to... (0 Replies)
Discussion started by: joker40
0 Replies

9. Programming

help with C programming, perror

i am trying to use the perror function: something like perror("WRONG!!!"); but when i see the message in the terminal, it comes out like WRONG!!! : Success How can i change it to WRONG!!! : WRONG!!! well i just want to have my own custom message for the part after the colon... (1 Reply)
Discussion started by: omega666
1 Replies

10. UNIX for Advanced & Expert Users

Help with Signals

Hi All, The problem statement is as below: Problem: A process (exe) is getting executed in background. The output of this process is getting logged in a file. After successfully running for some time the process gets terminated. In the log file following is present: ^M[7m Interrupt ^M[27m... (8 Replies)
Discussion started by: Praty.27
8 Replies
PCNTL_SIGPROCMASK(3)							 1						      PCNTL_SIGPROCMASK(3)

pcntl_sigprocmask - Sets and retrieves blocked signals

SYNOPSIS
bool pcntl_sigprocmask (int $how, array $set, [array &$oldset]) DESCRIPTION
The pcntl_sigprocmask(3) function adds, removes or sets blocked signals, depending on the $how parameter. PARAMETERS
o $how - Sets the behavior of pcntl_sigprocmask(3). Possible values: o SIG_BLOCK: Add the signals to the currently blocked signals. o SIG_UNBLOCK: Remove the signals from the currently blocked signals. o SIG_SETMASK: Replace the currently blocked signals by the given list of signals. o $set - List of signals. o $oldset - The $oldset parameter is set to an array containing the list of the previously blocked signals. RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 pcntl_sigprocmask(3) example <?php pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP)); $oldset = array(); pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset); ?> SEE ALSO
pcntl_sigwaitinfo(3), pcntl_sigtimedwait(3). PHP Documentation Group PCNTL_SIGPROCMASK(3)
All times are GMT -4. The time now is 08:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy