On Tue, 14 Jun 2016 13:08:59 +0200, Edward Bartolo wrote:
[...] 
> Now I would like to ask what is the need of the fork() call in
> Felker's code. Yes, I know, it creates a child that continues
> execution just after the fork call.
[...]
> I checked with XFCE4 loaded how many instances of felker2.bin existed
> and found that only one existed.

Since the child process is replaced by whatever program you 
execute via execve() there should only be one instance left 
running. What else would you expect?

Look, Edward, I admire your impetus, and your enthusiasm 
surely is refreshing. But it seems I haven't successfully 
put across my most important point yet. So please let me 
try to bring home the message once more, at the risk of 
offending you:

We could play this game day in, day out for months or even 
years, without having you grasp the basics necessary to 
fully understand the implications of even moderately 
sophisticated C programs. It'd be like teaching integral 
calculus to someone not having mastered multiplication yet: 
frustrating for both student and teacher.

There is no substitute for learning things from the bottom 
up. There is no silver bullet! You *have* to go through the 
basics to even have a chance of understanding more advanced 
concepts.

And once you've mastered at least the very basics of the 
language, you can build upon that; e.g. by following 
Katolaz' suggestions: 
| Before coding an init system, I would probably start with coding a
| shell, with basic command execution, environment management,
| background processes, a few builtins, I/O redirection, pipes, and
| proper signal management. 

I've been programming in C for decades now. I can cite C&V 
from the C standard when woken up in the middle of the 
night. Yet still I would never dare call myself an expert, 
and I still manage to make a fool of myself when having to 
deal with some of the more esoteric aspects of the language. 

All of this is not meant to discourage you. On the contrary, 
I'm trying to give you hints on how to go at things in a way 
that gives you a fighting chance of actually understanding 
what you are messing about with. Programming is *not* hitting 
some code with a hammer until the compiler stops complaining, 
looking for a bigger hammer if at first you don't succeed. 
Programming in C is *not* about kicking a piece of code around 
until it reaches some degree of 'works for me'. It is about 
working responsibly and cautiously with a confusingly huge set 
of delicate and (in the case of C) extremely sharp tools with 
lose handles. Do like a brain surgeon, not like a hooligan!

HTH, Regards
Urban

_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to