• How to trim a string in C

    Trim a string

    The problem of removing leading and trailing whitespace characters in strings occurs in programming quite often. Here is a solution.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>void trim (char *dest, char *src);int main (int argc, char ...
  • Socket programming using the select system call

    Server and clients

    1.0 Client-Server Paradigm

    The Client-Server paradigm divides the software architecture of a system in two parts, the server and its clients. The server works in the background and maintains the system-wide database. Using the database, it provides the functions ...

  • Socket Programming using UDP in C

    1.0 Datagram sockets

    There are two major types of network sockets, viz. Stream sockets (SOCK_STREAM) and Datagram sockets (SOCK_DGRAM). The socket type defines the semantics of communication between this socket and its remote counterpart. Stream sockets provide full-duplex reliable sequenced data streams. Datagram sockets support connectionless unreliable messages between the source and destination sockets. ...

  • Socket Programming using TCP in C

    1.0 Client-server model

    Client Server System

    Client server model is a software architecture paradigm prevalent in distributed applications. A server has information resources and processes that provide answers to queries and other services to ...

  • Signals in Linux

    1.0 Signals

    A signal is a notification delivered to a process by the kernel. A signal indicates that an event has occurred and the process must take note of it. Signals are mostly delivered asynchronously to a process. Whatever the process was doing is suspended and the processing of the signal takes place immediately.

    2.0 Signal disposition

    Each ...

  • D-Bus Tutorial

    D-Bus is a mechanism for interprocess communication for Linux systems. D-Bus concepts along with example client-server programs are explained.

  • POSIX Shared Memory in Linux

    1.0 Shared Memory

    Shared memory is an inter process communication (IPC) mechanism in Linux and other UNIX-like systems. Based on input parameters, the kernel provides a (shared) memory segment to the calling process. The calling process maps the shared memory segment to its address space. This way, the same shared memory segment can be mapped to ...

  • System V Shared Memory in Linux

    1.0 Shared Memory

    Shared memory is one of the three inter process communication (IPC) mechanisms available under Linux and other Unix-like systems. The other two IPC mechanisms are the message queues and semaphores. In case of shared memory, a shared memory segment is created by the kernel and mapped to the data segment of the address ...

  • Queue implementation in C using linked list

    1.0 Queue

    A queue is something we see often in our daily lives. People stand in a queue to get into a bus, to get food in a buffet, buy tickets from the ticket counter, etc. Queues are a fair solution of ordering people to get a resource; people are served in the chronological order of ...

  • POSIX Threads Synchronization in C

    1.0 POSIX Threads Synchronization

    POSIX Threads provide multiple flows of execution within a process. The threads have their own stacks but share the global data and the heap. So the global variables are visible to multiple threads. Also, the threads need to synchronize their actions so that they jointly realize the overall objectives ...

  • POSIX Threads Programming in C

    1.0 POSIX threads

    A process is an execution environment in an operating system. A process has code and data segments which are initialized from a program during an exec system call. A process has a thread of execution, wherein instructions are executed as per the value of the program counter ...

  • POSIX Semaphores in Linux

    1.0 Semaphores

    Semaphores are used for process and thread synchronization. Semaphores are clubbed with message queues and shared memory under the Interprocess Communication (IPC) facilities in Unix-like systems such as Linux. There are two varieties of semaphores, the traditional System V semaphores and the newer POSIX semaphores. In this ...

  • System V Semaphores in Linux

    1.0 Semaphores

    A semaphore is a mechanism for synchronizing processes and threads. Semaphore, in Unix-like systems, are provided under interprocess communication (IPC) facilities along with message queues and shared memory. While message queues can be used by themselves for interprocess communication, semaphores are needed for implementing shared memory based interprocess communication systems. ...

  • Semaphore Basics



    A semaphore is a signalling mechanism used to regulate access to a shared resource like a railroad track. A semaphore is used to signal to the driver of a train whether he can go ahead on the track ...

  • POSIX message queues in Linux

    POSIX message queue calls for interprocess communication (IPC) between processes are explained with an example of server and client programs in C under Linux.