Applications that handle signals must distinguish between atomic and non-atomic datatypes. Reading or writing an atomic object is guaranteed to take one instruction. By contrast, accessing a non-atomic object may take more than one instruction. In such cases, a signal might interrupt the process in the middle of reading or writing the object, thus causing unpredictable results.The Standard Library defines a special datatype called sig_atomic_t in the header