Sponsored Content
Full Discussion: C language Header files
Top Forums Programming C language Header files Post 302476739 by Corona688 on Thursday 2nd of December 2010 11:20:41 AM
Old 12-02-2010
All header files do is declare the existence of a function. For instance, you have a library 'flogify' or something.

Code:
// flogify.c
#include <stdio.h>
#include "flogify.h"

int flogify(const char *oops)
{
        return(printf("flogify(%s)\n", oops));
}

Code:
//flogify.h
// #ifndef/#define/#endif prevents accidental multiple inclusion.
#ifndef __FLOGIFY_H__
#define __FLOGIFY_H__

extern int flogify(const char *);

#endif/*__FLOGIFY_H__*/

so a.c and b.c will know the function exists. But you have to link it, too, otherwise it'll complain it can't find it:

Code:
$ gcc a.c b.c -o flogify
/tmp/ccEYKx87.o: In function `main':
a.c:(.text+0x19): undefined reference to `flogify'
/tmp/ccNOvwnB.o: In function `other':
b.c:(.text+0xe): undefined reference to `flogify'
collect2: ld returned 1 exit status
$ gcc a.c b.c flogify.c -o flogify
$

In other words, header files just tell code how to use functions, they don't actually make the functions exist.
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

grep data from header of files

Hello I want to grep data from header of the files . The header conatins data in this format . # $maint$ test1 # $product$ TTT I want to store maint name and product name with path of file . (12 Replies)
Discussion started by: getdpg
12 Replies

2. Shell Programming and Scripting

Removing Header from files before Concatenation

I need to concatenate the files of same type but with different names that conatin header. Before conactenating its mandatory to remove the header from the files .. and after concatenation the output file should contain header too. how to do it... thanks in advance. (4 Replies)
Discussion started by: amitpta
4 Replies

3. Shell Programming and Scripting

Need Header for all splitted files - awk

Input file: i have a file and need to split into multiple files based on first column. i need the header for all the splitted files. I'm unable to get the header. $ cat log.txt id,mailtype,value 1252468812,yahoo,3.5 1252468812,hotmail,2.4 1252468819,yahoo,1.2 1252468812,msn,8.9... (6 Replies)
Discussion started by: mannefromdetroi
6 Replies

4. UNIX for Dummies Questions & Answers

Merge Files into Single with Header

Hi All, I am trying to merge all files in a directory that end in *.txt to a single file with the contents one after the other. This I can do using the cat function but how do I put the name of the file as a header for each one in the combined single file and seperate the contents from each... (2 Replies)
Discussion started by: pcg
2 Replies

5. UNIX for Dummies Questions & Answers

Merge all csv files in one folder considering only 1 header row and ignoring header of all others

Friends, I need help with the following in UNIX. Merge all csv files in one folder considering only 1 header row and ignoring header of all other files. FYI - All files are in same format and contains same headers. Thank you (4 Replies)
Discussion started by: Shiny_Roy
4 Replies

6. UNIX for Dummies Questions & Answers

Kernel Header Files

I'm trying to lookup the definition of the ext4 superblock schedule in the kernel header files, but I can't seem to locate the files. I'm running the most recent Raspian Debian Wheezy OS with kernel version 3.18. Any help is greatly appreciated. Thank you!! (1 Reply)
Discussion started by: ksmarine1980
1 Replies

7. Shell Programming and Scripting

Merging two files to form header

Dear experts required you support to achieve below i need the file 2 values show on top of file 1 for mentioned valuesENTER CREDENTIALS or beside this please support to achieve the expected result . if I get the result 2 that will be better I have two files File 1 ENTER CREDENTIALS BILLING... (4 Replies)
Discussion started by: mirwasim
4 Replies

8. Programming

Where to get C header files?

Some of my c code compiles fine but others can't find header files. Colored_Chars.c:4:10: fatal error: graphics.h: No such file or directory Do I need to download them from some where? I found this. Is this what I need to do? Under Using DSL libraries - How do I use graphics.h in... (3 Replies)
Discussion started by: drew77
3 Replies

9. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies
END(3)							     Linux Programmer's Manual							    END(3)

NAME
etext, edata, end - end of program segments SYNOPSIS
extern etext; extern edata; extern end; DESCRIPTION
The addresses of these symbols indicate the end of various program segments: etext This is the first address past the end of the text segment (the program code). edata This is the first address past the end of the initialized data segment. end This is the first address past the end of the uninitialized data segment (also known as the BSS segment). CONFORMING TO
Although these symbols have long been provided on most Unix systems, they are not standardized; use with caution. NOTES
The program must explicitly declare these symbols; they are not defined in any header file. On some systems the names of these symbols are preceded by underscores, thus: _etext, _edata, and _end. These symbols are also defined for programs compiled on Linux. At the start of program execution, the program break will be somewhere near &end (perhaps at the start of the following page). However, the break will change as memory is allocated via brk(2) or malloc(3). Use sbrk(2) with an argument of zero to find the current value of the program break. EXAMPLE
When run, the program below produces output such as the following: $ ./a.out First address past: program text (etext) 0x8048568 initialized data (edata) 0x804a01c uninitialized data (end) 0x804a024 Program source #include <stdio.h> #include <stdlib.h> extern char etext, edata, end; /* The symbols must have some type, or "gcc -Wall" complains */ int main(int argc, char *argv[]) { printf("First address past: "); printf(" program text (etext) %10p ", &etext); printf(" initialized data (edata) %10p ", &edata); printf(" uninitialized data (end) %10p ", &end); exit(EXIT_SUCCESS); } SEE ALSO
objdump(1), readelf(1), sbrk(2), elf(5) COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU
2008-07-17 END(3)
All times are GMT -4. The time now is 09:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy