3 * adds devmode and devgid to usbfs in fstab
15 void eputs(const char *msg)
17 write(2, msg, strlen(msg));
22 char *name = "/etc/fstab";
23 char *backup_name = "/etc/fstab.bak";
24 char *add = ",devgid=78,devmode=0664";
31 eputs("Updating /etc/fstab...");
32 fd = open(name, O_RDONLY);
34 eputs("\nError: can't open file\n");
38 old = (char *) malloc(st.st_size);
40 eputs("\nError: malloc failure\n");
43 read(fd, old, st.st_size);
47 fd = open(backup_name, O_WRONLY|O_CREAT|O_TRUNC, 0600);
49 eputs("\nError: can't make backup\n");
52 write(fd, old, old_sz);
56 for (i = 0; i < old_sz; i++) {
57 if ( old[i] == 'u' && old[i+1] == 's' && old[i+2] == 'b'
58 && old[i+3] == 'f' && old[i+4] == 's')
62 for (;i < old_sz; i++) {
63 if ( old[i] == 'd' && old[i+1] == 'e' && old[i+2] == 'f' && old[i+3] == 'a' && old[i+4] == 'u' )
67 for (;i < old_sz; i++) {
68 if ( old[i] == ' ' || old[i] == '\t' )
72 eputs("\nError: can't find correct usbfs entry\n");
76 fd = open(name, O_WRONLY|O_CREAT|O_TRUNC);
78 eputs("\nError: can't open file for writing\n");
82 write(fd, add, strlen(add));
83 write(fd, old + i, old_sz - i);