crt0.c
来自「freedos32的源代码」· C语言 代码 · 共 52 行
C
52 行
#include <ll/i386/hw-data.h>#include <kernel.h>#include <stubinfo.h>#include <stdlib.h>#define MAX_FILES 20static char **environ;static char *__env[1] = {0};static char *argv[255];DWORD mem_limit;extern struct psp *current_psp;extern int main(int argc,char **argv,char **envp);static struct psp local_psp;void libc_init(struct process_info *pi){ int argc; char *p, *args; environ = __env; /* Set up args... */ args = args_get(pi); mem_limit = maxmem_get(pi); argc = 1; argv[0] = name_get(pi); p = args; if (p != NULL) { while (*p != 0) { argv[argc++] = p; while ((*p != 0) && (*p != ' ')) { p++; } if (*p != 0) { *p++ = 0; } while(*p == ' ') { p++; }; } } /* Set up the JFT */ local_psp.jft_size = MAX_FILES; local_psp.jft = fd32_init_jft(MAX_FILES); local_psp.link = current_psp; current_psp = &local_psp; exit(main(argc, argv, environ)); /* FIXME: how do we restore the psp??? Simple: in exit.c!!! */}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?