Posted: . At: 10:43 AM. This was 9 years ago. Post ID: 8200
Page permalink. WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.
These cookies expire two weeks after they are set.

A simple C code snippet that shows how to do a function call.

Do a simple function call in C. This code snippet shows how to do this

This simple C code snippet shows how to do a function call in C. This calls the hi() function and runs it in main(). Very simple but useful code. And this does not need to call any include files. As I am using the built-in write() function.

int hi()
{
        int i;
        i = 0;
 
        write(1, "Hi.\n", 5);
 
        while (i < 8) {
                system("echo 'This is a loop.'");
                i++;
        }
}
 
int main(int argc, char** argv)
{
        write(1, "Hello World\n", 15);
        hi();
 
        return 0;
}

A nice function that reads a file and performs various operations on it, depending on the contents.

void kernel(const char *File, int len)
{
	FILE *f;
	char Kyo[40];
 
	if (len > 10 or len < 2)
		return;
 
	f = fopen(File, "r");
	if(!f) {
		printf ("Sorry, I cannot open: %s.\n", File);
		printf("Please check your permissions with\n"		\
			"your supervisor. The feature may not\n"	\
			"be compiled and\\or enabled in your\n"		\
			"kernel version. Or a scsi device, eg,\n"	\
			"a USB drive may not be attached.\n");
		return;
	} else {
/* Based on sample code from:
 * www.koders.com/c/fid84CFEFBF311605F963CB04E0F84A2F52A8120F33.aspx
 * Specifically the section on parsing the /proc/version.
 */
		while (feof(f) != 1) {
			fgets(Kyo, len, f);
			if (strncmp(Kyo, "((", 1) == 0)
				printf ("\n-");
			if (strncmp(Kyo, "#", 1) == 0) {
				printf ("\nVersion: #");
			} else {
/*
 * This function is fast, owing to this i feel. especially with gcc 
 * 4.3.2 & glibc 2.5+. it is faster than using: printf (Kyo);
 */
				fprintf (stdout, "%s", Kyo);
			}
			fflush(stdout);
		}
	}
	fclose(f);
}

Feeding the version number and other text into a text block to create a very nice banner for my program to print out.

enum { VERSION = 150 };
#define SYSINFO "Sysinfo version v%i.%i"
 
const char *p = "System Information Program";
char ver[128];
 
void print_menu()
{
	printf("\tSysinfo. %s\n\n", p);
 
	printf("1 - Kernel Information.\n2 - Memory & processes.\n");
	printf("3 - CDROM Information.\n4 - View list of sound cards.\n");
	printf("5 - View Real Time Clock Information.\n");
	printf("6 - View motherboard and BIOS information.\n");
/*	printf("7 - View information about your hard drive.\n"); */
 
	sprintf (ver, SYSINFO, VERSION / 100, VERSION % 100);
 
	printf("\n%s, by John Cartwright 2007.\nsysinfo comes with ", ver);
	printf("ABSOLUTELY NO WARRANTY. This\n is open source software,");
	printf("and you are welcome to \nredistribute it under certain ");
	printf("conditions as \noutlined in the GNU Public License.\n\n");
	exit(0);
}

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.