| 
							 Functions 
 
char *_strndup(char *str, int n); 
Very useful to duplicate only a part of a 
string, returning a zero-terminated string 
I don't know why, but there is no such 
function in the standard C library for win32, or I never found it 
 
char *get_good_file(char *av_zero, char 
*file); 
I think, one of the function I use the 
most, you give the argv[0] as first argument, and a name of a file to retrieve 
in the same directory as argv[0] (the program location) 
On UNIX you only need to use ./file 
to retrieve the file, but on win32, the shell and the environment is not managed 
very well for that, so get_good_file() will help you perfectly for that 
Be careful, it return an allocated pointer 
to char 
 
char *get_next_line(int fd); 
get_next_line is a very useful function to 
acquire input data, I already noticed problems with scanf that act weirdly when 
you enter a sentence for an integer value, and i dislike to use gets or function 
like that... 
I always use it with file descriptor 0, to 
read the keyboard, like that, str = get_next_line(0); will read the keyboard 
until you strike the enter key, and then return the complete string into str 
 
char *get_next_line_ex(FILE *fd); 
This one act exactly the same as 
get_next_line, but read on a FILE* file descriptor, so it's to read a file, line 
by line, it's very very useful and it's the function I use more 
for example : 
	
		| char | 
		*str; | 
	 
	
		| FILE | 
		*fd; | 
	 
	
		|   | 
	 
	
		| fd = 
		fopen(file, 
		"rb"); | 
	 
	
		| while
		((str = 
		get_next_line_ex(fd))) | 
	 
	
		| { | 
	 
	
		|   | 
		// 
		things to do with str, exemple : printf("%s\n", str); | 
	 
	
		|   | 
	 
	
		|   | 
		free(str); | 
	 
	
		| } | 
	 
 
I always use this to read configuration 
file, and since they are often in the program root directory, it's easy to get 
it with get_good_file() 
 
char **str_to_word_tab(char *sep, char 
*str); 
This function is also very very useful for 
the configuration files, you give it a suit of separator and a string to cut, 
and it return an array of char*, containing all the strings cut by the 
separator, this function cut only outside the guillemets (" ") 
for example, you have a configuration file 
containing "option = truc, chose, bidule", you can cut like that : tab = 
str_to_word_tab(",=", str); and tab[0] will contain "option", like that you'll 
be able to control if you are actually parsing options, and if yes (strcmp) then 
you just have to read tab[1], tab[2], tab[3] and so on to have every options 
 
char **str_to_word_tab_original(char 
*sep, char *str); 
It works exactly like str_to_word_tab, 
just above, but it doesn't mind the guillemets (" ") 
 
void free_tab(char **tab); 
This function is a cousin of 
str_to_word_tab*, it just free correctly a tab allocated by these functions 
 
char *trim(char *str, char *inib); 
The trim function will remove every 
undesired characters, and the beginning and the end of the string, the undesired 
characters are set via inib parameter 
The function return exactly the same 
pointer as str, the function do not allocate any memory, it just move bytes into 
str buffer 
 
term.c contains 3 functions : 
void gotoxy(int x, int y); 
This function allow you to set the current 
console terminal cursor 
void set_color(int r, int g, int b, int 
intensity); 
This one allow you to change the current 
console terminal foreground color, like that, you can write in red, blue, green 
or else, you just have to write 1 to set the color, or 0 to not set it, you can 
compound colors and the intensity flag is used to create clear color (1) or dark 
color (0) 
void restore_default_color(); 
It restore the default color of the 
terminal (grey clear) 
							 |