next up previous contents
Next: Hálózatok Up: Rendszerhívások Previous: Könyvtárak thread-biztossága

Kérdések

  1. Próbáljuk ki, hogy mit ír ki a következo program! (Miért érdekes ez?)

              #include <stdio.h>
    
              main()
              {
                   int fd1,fd2;
                   char c;
    
                   fd1=creat("/tmp/tfil1",0770);
                   write(fd1,"alma",4);
                   close(fd1);
                   fd1=open("/tmp/tfil1",0);
                   fd2=dup(fd1);
                   read(fd1,&c,1);
                   printf("%c",c);
                   read(fd2,&c,1);
                   printf("%c",c);
                   close(fd2);
                   close(fd1);
              }
    

  2. Az fstat rendszerhívás nem fölösleges? Minden esetben lehet a stat rendszerhívással "helyettesíteni"?

  3. Mit csinál a következo program? (Tegyük fel, hogy a C fordítónk nem végez optimalizációt.)

              #include <signal.h>
    
              int i;
    
              elj1()
              {
                   i=23;
              }
    
              main()
              {
                   printf("START!\n");
                   signal(SIGINT,elj1);
                   i=0;
                   while (i==0) {
                        kill(getpid(),SIGINT);
                   }
                   printf("STOP!\n");
              }
    

  4. Bovítsük a shellünket további UNIX shell metakarakterekkel! (Például a >>, &, <, stb...)

  5. Bovítsük a shellünket shell-változók kezelésének lehetoségével.

  6. Bovítsük a shellünket egyszerubb vezérlési szerkezetekkel.

  7. Bovítsük a shellünket a pipe lehetoséggel. Gondoljuk meg, hogy a pipe-ba kapcsolt folyamatokat milyen sorrendben kell/érdemes elindítani ahhoz, hogy a szokásos UNIX shellekben megismert módon muködjenek.

  8. Jellemezzük és hasonlítsuk össze egymással a threadek szinkronizációjára használatos eszközöket!



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