On Tue, 14 Jun 2016 08:54:12 +0200, Edward Bartolo wrote: > Hi, > > I downloaded and compiled Felker's minimal init but found it didn't > work. Examining the code it seems that the website had been > vandalised.
Assuming you are referring to the code quoted below: No, it's the correct version, and I see no reason for it "not working". However, you did not specify at all what you mean by "didn't work". (Modulo the compiler should have issued a warning about a missing prototype for the wait function, for which there is a trivial fix: #include <sys/wait.h>) > According to my logic the endless loops should be at the > end Why? > rather than at the middle of the code. And that's exactly where it should be, namely in the body of the "if (fork())" conditional statement, which constitutes the entire code for the parent process to run once fork() has returned. > Furthermore, the code seems > to first block signals then it enables them back afterwards > contradicting the text. The signals stay blocked in the parent process, i.e. the for loop conditional on the fork(), see above. The signals get unblocked for the child process, i.e. everything *below* said if-block. I fail to see in what way the code contradicts the text, or vice versa. > I am quoting the website: > http://ewontfix.com/14/ > > The C code for Felker's minimal init is: > ------------------------------------------------------------- > #define _XOPEN_SOURCE 700 > #include <signal.h> > #include <unistd.h> > > int main() > { > sigset_t set; > int status; > > if (getpid() != 1) return 1; > > sigfillset(&set); > sigprocmask(SIG_BLOCK, &set, 0); > > if (fork()) for (;;) wait(&status); > > sigprocmask(SIG_UNBLOCK, &set, 0); > > setsid(); > setpgid(0, 0); > return execve("/etc/rc", (char *[]){ "rc", 0 }, (char *[]){ 0 }); > } Edward, with all due respect, and I'm trying hard to not appear rude or offensive, just trying to be helpful here: I'm afraid you are in dire need of some introductory lessons in C programming in general, and C programming for *NIXes in particular. For the former I highly recommend K&R2 [1] as a primer; for the latter I'm not sure what a contemporary canonical book recommendation would be, but there are a lot of resources (of varying quality, beware!) out there. Maybe other readers of DNG have good suggestions to make. [1] The C Programming Language, 2nd Edition, by Kernighan and Ritchie HTH, Regards Urban _______________________________________________ Dng mailing list [email protected] https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
