home *** CD-ROM | disk | FTP | other *** search
/ The UNIX CD Bookshelf / OREILLY_TUCB_UNIX_CD.iso / upt / examples / SOURCES / QSUBST / I386 / QSUBST. next >
Encoding:
Text File  |  1998-07-24  |  2.0 KB  |  100 lines

  1. *** sigsetmask.c.orig    Fri Oct 30 16:00:00 1992
  2. --- sigsetmask.c    Fri Oct 30 16:00:33 1992
  3. ***************
  4. *** 0 ****
  5. --- 1,11 ----
  6. + #include <signal.h>
  7. + sigset_t sigsetmask( sigset_t mask )
  8. + {
  9. +   sigset_t *set;
  10. +   sigset_t *oset;
  11. +   set = &mask;
  12. +   sigprocmask(SIG_SETMASK,set,oset);
  13. +   return (*oset);
  14. + }
  15. *** ftruncate.c.orig    Thu Nov  5 10:08:17 1992
  16. --- ftruncate.c    Thu Nov  5 10:07:54 1992
  17. ***************
  18. *** 0 ****
  19. --- 1,38 ----
  20. + /*
  21. +  * Truncate a file or a file descriptor
  22. +  */
  23. + #include <stdio.h>
  24. + #include <sys/types.h>
  25. + #include <fcntl.h>
  26. + ftruncate(fd, length)
  27. +     int fd;
  28. +     off_t length;
  29. + {
  30. +     FILE *tmpfile(), *tempf, *orig;
  31. +     off_t i;
  32. +     if ((orig = fdopen(fd, "r")) == NULL) {
  33. +         perror("fdopen");
  34. +         return -1;
  35. +     }
  36. +     if ((tempf = tmpfile()) == NULL)
  37. +         return -1;
  38. +     for (i = 0L; i < length; i++)
  39. +         putc(getc(orig), tempf);
  40. +     copyback(tempf, orig);
  41. +     fclose(tempf);
  42. +     fclose(orig);
  43. + }
  44. + copyback(orig, new)
  45. +     FILE *orig, *new;
  46. + {
  47. +     char c;
  48. +     while ((c = getc(orig)) != EOF)
  49. +         putc(c, new);
  50. + }
  51. *** Makefile.orig    Thu Nov  5 11:20:06 1992
  52. --- Makefile    Thu Nov  5 11:23:22 1992
  53. ***************
  54. *** 6,10 ****
  55.       install -s qsubst $(BINDIR)
  56.       install qsubst.1 $(MANDIR)
  57.   
  58. ! qsubst:        qsubst.c
  59. !     $(CC) $(CFLAGS) -o qsubst qsubst.c -ltermcap
  60. --- 6,19 ----
  61.       install -s qsubst $(BINDIR)
  62.       install qsubst.1 $(MANDIR)
  63.   
  64. ! qsubst:        qsubst.c sigsetmask.o ftruncate.o sigblock.o
  65. !     $(CC) $(CFLAGS) -o qsubst sigsetmask.o ftruncate.o sigblock.o qsubst.c -ltermcap
  66. ! sigblock.o:    sigblock.c
  67. !     $(CC) -c -O sigblock.c
  68. ! sigsetmask.o:    sigsetmask.c
  69. !     $(CC) -c -O sigsetmask.c
  70. ! ftruncate.o:    ftruncate.c
  71. !     $(CC) -c -0 ftruncate.c
  72. *** sigblock.c.orig    Thu Nov  5 11:26:22 1992
  73. --- sigblock.c    Thu Nov  5 11:24:10 1992
  74. ***************
  75. *** 0 ****
  76. --- 1,11 ----
  77. + #include <signal.h>
  78. + sigset_t sigblock( sigset_t mask )
  79. + {
  80. +   sigset_t *omask;
  81. + /* under bsd it is used like this:    mask = sigblock( sigmask(sig) ); */
  82. +   sigprocmask(SIG_SETMASK, &mask, omask);
  83. +   return *omask;
  84. + }
  85.