home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 December / CHIPNET Aralık 1997.iso / linux / redhat / misc / src / install / mapshdr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-11  |  750 b   |  38 lines

  1. #include <errno.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <sys/stat.h>
  5. #include <unistd.h>
  6.  
  7. #include "kbd.h"
  8.  
  9. void main(int argc, char ** argv) {
  10.     struct kmapHeader h;
  11.     struct kmapInfo info;
  12.     int i;
  13.     struct stat sb;
  14.     char * chptr;
  15.  
  16.     h.magic = KMAP_MAGIC;
  17.     h.numEntries = argc - 1;
  18.     write(1, &h, sizeof(h));
  19.  
  20.     for (i = 1; i < argc; i++) {
  21.     if (stat(argv[i], &sb)) {
  22.         fprintf(stderr, "stat error for %s: %s\n", argv[i], 
  23.             strerror(errno));
  24.         exit(1);
  25.     }
  26.  
  27.     memset(info.name, 0, KMAP_NAMELEN);
  28.     strncpy(info.name, argv[i], KMAP_NAMELEN - 1);
  29.  
  30.     chptr = info.name + strlen(info.name) - 1;
  31.     while (*chptr != '.') *chptr-- = '\0';
  32.     *chptr = '\0';
  33.  
  34.     info.size = sb.st_size;
  35.     write(1, &info, sizeof(info));
  36.     }
  37. }
  38.