Visit Our UNIX and Linux User Community


perror with signals


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers perror with signals
# 1  
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;

}

# 2  
Old 10-22-2010
perror is virtually the same as :
Code:
myperror const char *msg)
{
  fprintf(stderr "%s: %s\n", msg, strerror(errno) );
}

So, I am not getting what you are asking. The code is misusing perror. IMO.
# 3  
Old 10-22-2010
perror question

My question was why first time trought the main loop my output gives ...
blocked signal:success and all the other time trought the loop gives illegal seek

The other question was why when program is just about done (second last line of code) my output gives....didn't change mask:success
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #306
Difficulty: Easy
The HTML4 standard was published in 2014.
True or False?

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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

Featured Tech Videos