Разделы сайта:
Статьи по C и C++Стандартная библиотека CКнигиЮмор
Функции библиотеки stdlib.h

В этом файле определены основные функции для комфортного написания программ: работа с памятью, преобразования между строками и числами, и многое другое. Рассмотрим раздел stdlib.h, посвященный работе с внешним окружением операционной системы. Так как все операционные системы, платформы различны по своей структуре и организации, стандарт подразумевает наличие немногих обязательных функций.

Иногда следует сделать ненормальный выход из программы (abnormal program termination). Для этого предусмотрена функция abort.

void abort(void);
Функция ничего не возвращает и не требует никаких параметров. Функция abort не обновляет буферы потоков.

Для выхода из программы (не только из функции main) предусмотрена функция exit (_Exit в C99) (однако компиляторы, в зависимости от платформы, как правило предлагают дополнительные возможности). Вот их прототипы:

void exit(int status);
Функция ничего не возвращает, но требует параметр статуса выхода. В качестве status вы можете указать любое число, соответсвующее коду ошибки, однако следует помнить, что наиболее безопасным является указание: 0 или EXIT_SUCCESSFUL при успехе и EXIT_FAILURE (не единица) при неудаче. Все прочие статусы должны быть определены компилятором. Несколько вызовов exit приводит к неопределенному поведению.

Для того, чтобы исполнять свои инструкции при выходе из программы, следует использовать функцию atexit. Она ставит в очередь на исполнение Вашу функцию, и затем при выходе из программы вызывает ее. Таких функций можно определить до 32-х.

int atexit(void (*func)(void));
Возвращает нуль при успехе. Вот пример ее использования:
#include <stdlib.h>
#include <stdio.h>

//Определяется функция только без параметров и без возвращаемого значения
void good_bye(void); 

int main() {
	printf("Welcome\n");
	atexit(good_bye);
	return EXIT_SUCCESS;
}

void good_bye(void) { 
	printf("bye!");
}

Для того, чтобы выполнить функцию системного коммандного процессора, используйте функцию system.

int system(const char *string);
Исполняет команду string. Если в эту функцию передать NULL, тогда функция должно будет вернуть ненулевое значение при доступности коммандного процессора. Если в Функцию передать строку, то она возвращает 0 при успехе и -1 при ошибке.

Помимо этих, как правило в комиляторах вы найдете и некоторые другие функции, например exec*, исполняющие программу с параметрами, передающимися в виде отдельных строк, как дочерний процесс и spawn*, перед исполнением, завершающий текущий процесс, однако они не входят в стандарты C, и в отличие от работы с файлами я их рассматривать не буду.

Дальше
Автор и разработчик сайта - Кляус Сергей. Спасибо Форуму на Исходниках.RU за помощь в сборе материалов.
X