blob: 16c3a946babc064ef8d8550f703ae482c98fff96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <stdlib.h>
extern int main(int argc, char** argv);
void _start(const char* arg, unsigned long arglen)
{
static char arg_buffer[256];
char* argv[3];
int argc = 1;
argv[0] = "";
if (arglen > 0)
{
unsigned long count = arglen;
if (count > sizeof(arg_buffer) - 1)
count = sizeof(arg_buffer) - 1;
for (unsigned long i = 0; i < count; i++)
arg_buffer[i] = arg[i];
arg_buffer[count] = 0;
argv[1] = arg_buffer;
argc = 2;
}
else
argv[1] = NULL;
argv[argc] = NULL;
exit(main(argc, argv));
}
|