Files
kolibrios/programs/develop/ktcc/trunk/libc.obj/source/stdlib/exit.c
Egor00f 15f27eb1c3
Some checks failed
Build system / Build (pull_request) Failing after 1s
Build system / Check kernel codestyle (pull_request) Successful in 1m18s
libc.obj: add call exit after main && add build for ctr0.o && use return instead exit in samples
нен работает
по стандартам после `main` должно быть закрыте всего, что закрывается в `exit`
ну терпите, crt увеличиласть на несколько байт
обертка для `exit` в crt нужна т.к. `exit` импортируется.

зачем вообще было держать бинарь `libc.obj/lib/crt0.o`, если абсолютно такой же лежит в `bin/lib/` всемсте `tcc`? Нет, зачем вообще тащить бинари в репку?
2026-01-15 21:19:10 +05:00

41 lines
613 B
C

/* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */
#include <stdlib.h>
#include <sys/ksys.h>
#include "_mem.h"
static void __close_all()
{
}
static void __delete_all_tmp()
{
}
static void __free_all_mem()
{
struct mem_node* current_node = __mem_node;
while (current_node != NULL)
{
struct mem_node* tmp = current_node;
current_node = current_node->next;
free(GET_MEM_NODE_PTR(tmp));
}
}
void exit(int status)
{
_ksys_debug_puts("exit\n");
__run_atexit();
__close_all();
__delete_all_tmp();
__free_all_mem();
_exit(status);
}