Basic Question On C

naiya's Avatar
Go4Expert Member
Why are some functions defined in more than one header file? Like malloc() is defined in
malloc.h and alloc.h. And exit(0) is defined in process.h and stdlib.h,why?
REPLY ASAP.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Because of semantic help.
0
DaWei's Avatar, Join Date: Dec 2006
Team Leader
Same reason Merriam-Webster has a lot of the same words as the Oxford English dictionary. Maybe it's a waste, maybe not.
0
naiya's Avatar
Go4Expert Member
Quote:
Originally Posted by shabbir
Because of semantic help.
Shabbir ,your answer didn't solve my problem.Because I didn't understand the meaning of semantic help. Plz ,can you explain this ?
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
A function may be related to 2 operations.

Say stdlib have functions for standard library function and say function x is classified as standard library function and so its there in the header file but again the same function may also be classified as memory / IO or any other utility function and so its included in the other file as well. Just a semantic help.
0
mihir83in's Avatar, Join Date: Jun 2007
Light Poster
Thats the answer what shabbir said, to put it in simpler words.

A header file is a collection of functions grouped together for a specific task or process, thus all functions in a header file are relative to each other in some context.

Now a function such as exit() or malloc() can have very different applications depending on the needs of a program. For example if you need to use function exit() in your program just to exit then there will be no need of including other 59 functions defined in stdlib.h so they included the exit function in both header files. Process.h is sufficient for dealing with process abortion and ending. while stdlib.h exit function acts the same, but that file would be included when performing some standard i/o operations.

To sum up , they are grouping the functions so that relativity is maintained , and multiple declarations of more generic functions define that user dont have to include all the other unnecessary functions .

I hope that solved your problem, Greetings.
0
naiya's Avatar
Go4Expert Member
Shabbir and Mihir
Thank you so much.