Потоки ввода-вывода
Скрыты за абстрактным типом FILE
:
FILE* f = fopen("file.txt", "r");
if (f == NULL) {
perror("file.txt");
...
}
fclose(f);
Запуск программы на языке Си
Стандарт гласит:
The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent; or in some other implementation-defined manner.
На Linux операционная система запускает программу с точки входа, которая обычно называется _start, и стандартная библиотека предоставляет примерно такую реализацию:
void _start() {
... // retrieve cmdline args and environment
... // initialize stdlib data structures
int exit_status = main(argc, argv, envp);
exit(exit_status); // flushes output streams, calls atexit() hooks
}