next up previous contents
Next: Az ide tartozó Up: Bevezetés Previous: A STREAMS üzenettípusai

Egy STREAMS-et használó program

A következo program az elobbieknek a használatát mutatja be - inkább a programozó szemszögébol. A program eloször megnyitja a /dev/bcndm0 STREAMS drivert, ráhelyezi a birk nevu STREAMS modult, majd ezen I/O muveleteket végez. (A modul ill. driver implementációja késobb lesz ismertetve.) Ez azt jelenti, hogy a megnyitott fileba írt illetve az onnan beolvasott adatok ( üzenetek) keresztülmennek a birk nevu modulon is, ami a feladatának megfelelo dolgokat elvégezheti rajtuk. Látható, hogy a kernelben levo modulokat nevükkel lehet azonosítani (a modulnevek bekerülnek egy fmodsw kernel táblázatba). A program végül leveszi a driverrol a birk nevu modult, és lezárja a megnyitott filet.
A következo ábra bemutat egy streamet az I_PUSH elott és után.

#include <stropts.h>     /* Konstansok miatt kell */
#include <fcntl.h>

main()                   /* STREAMS pelda */
{
  char buf[512];
  int fd,count;

  /* Driver megnyitasa : */
  if ((fd=open("/dev/bcndm0",O_RDWR)) == -1 )
    { perror("/dev/bcndm0"); exit(1); }
  /* Modul rahelyezese : */
  if (ioctl(fd,I_PUSH,"birk") == -1) 
    { perror("Push birk"); exit(2); }

  while ((count = read(0,buf,512) ) > 0) /* STANDARD inputrol olvas */
    if (write(fd,buf,count) != count)
    { perror("/dev/bcndm0"); exit(3); }

  /* Modul leszedese : */
  if (ioctl(fd,I_POP,0) == -1)
    { perror("Pop birk"); exit(2); }
  close(fd);
}



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996