≡ Menu

C Programming

In C programming language, the concept of pointers is the most powerful concept that makes C stand apart from other programming languages. In the part-I of this series we discussed the fundamental concepts around C pointers. In this article, we will try to develop understanding of some of the relatively complex concepts. The following are [...]

{ 100 comments }

If you are interested in writing Linux system programming, you should learn all the basic library/system calls. This article has an example C program that covers a set of system calls that will help you understand the usage of these basic library calls. The example C code given below does the following: Automatically opens up [...]

{ 2 comments }

Typically two processes communicate with each other on a single system through one of the following inter process communication techniques. Pipes Message queues Shared memory There are several other methods. But the above are some of the very classic ways of interprocess communication. But have you ever given a thought over how two processes communicate [...]

{ 88 comments }

C Arrays Basics Explained with 13 Examples

This article is part of our on-going C programming series. There are times while writing C code, you may want to store multiple items of same type as contiguous bytes in memory so that searching and sorting of items becomes easy. For example: Storing a string that contains series of characters. Like storing a name [...]

{ 57 comments }

C Pointers Fundamentals Explained with Examples – Part I

Anybody who is working on Linux environment (not just developers), should understand the fundamentals of C programming language and write some basic C program. This article is part of our ongoing series on C programming language. The concept of pointers is one of the most powerful fundamentals of C/C++ language. Through pointers a developer can [...]

{ 104 comments }

One major aspect of system programming is to handle memory related issues effectively. The more you work close to the system, the more memory related issues you need to face. Sometimes these issues are very trivial while many times it becomes a nightmare to debug memory related issues. So, as a practice many tools are [...]

{ 14 comments }

Explore GCC Linking Process Using LDD, Readelf, and Objdump

Linking is the final stage of the gcc compilation process. In the linking process, object files are linked together and all the references to external symbols are resolved, final addresses are assigned to function calls, etc. In this article we will mainly focus on the following aspects of gcc linking process: Object files and how [...]

{ 11 comments }

Journey of a C Program to Linux Executable in 4 Stages

You write a C program, use gcc to compile it, and you get an executable. It is pretty simple. Right? Have you ever wondered what happens during the compilation process and how the C program gets converted to an executable? There are four main stages through which a source code passes in order to finally [...]

{ 88 comments }