Week 4 Topics: Pipes and Signals, Slides of Computer Programming

An overview of pipes and signals in unix-based systems. Topics include named and unnamed pipes, implementing pipes in a shell, catching signals, manipulating signal sets, and using various signal handlers. Students will learn how to create and use pipes for inter-process communication and how to handle signals to respond to specific events.

Typology: Slides

2012/2013

Uploaded on 04/29/2013

parmita
parmita 🇮🇳

4.7

(17)

183 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Week 4 Topics
Pipes
Named and unnamed pipes
Implementing pipe in a shell
Signals
Catching signals
signal
Manipulate signal sets
sigemptyset, sigfillset, sigdelset, sigaddset, sigdelset,
sigismember
Manipulate signal mask
sigprocmask
sigaction
kill
Docsity.com
pf3
pf4
pf5
pf8

Partial preview of the text

Download Week 4 Topics: Pipes and Signals and more Slides Computer Programming in PDF only on Docsity!

Week 4 Topics

  • Pipes
    • Named and unnamed pipes
    • Implementing pipe in a shell
  • Signals
    • Catching signals
    • signal
    • Manipulate signal sets
      • sigemptyset, sigfillset, sigdelset, sigaddset, sigdelset, sigismember
    • Manipulate signal mask
      • sigprocmask
    • sigaction
    • kill

Pipes

• Named pipe ( not our emphasis )

• Unnamed pipe

• Implementing pipe in a shell

Something for you to try

  • Implement a pipe
    • a.out cmd1 cmd2cmd1 | cmd

Signals

  • Catching signals
  • signal
  • Manipulate signal sets
    • sigemptyset, sigfillset, sigdelset, sigaddset, sigdelset, sigismember
  • Manipulate signal mask
    • sigprocmask
  • sigaction
  • kill

Catching a signal

  • Software interrupts
    • When a process receives a signal, it
      • Stops execution
      • Calls a signal handler routine
      • Continues
    • A signal can be received at any point in the

program

  • Default signal handler often exits the program

ANSI signal()

  • Syntax:

#include <signal.h> void (signal(int sig, void (disp)(int)))(int);

  • Semantics
    • sig -- signal (defined in signal.h)
    • disp -- SIG_IGN, SIG_DFL or the address of a signal handler
    • Handler may be erased after one invocation
      • Simple techniques for avoiding this can lead to incorrect results
    • See example3.c