Update userspace

This commit is contained in:
EnderIce2
2024-01-19 06:45:44 +02:00
parent 17787dbc9b
commit c685a37c15
14 changed files with 1154 additions and 181 deletions

View File

@@ -1,15 +1,59 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
int main(int argc, char *argv[])
{
if (argc == 1)
int enableEscapes = 0;
int disableNewline = 0;
int opt;
while ((opt = getopt(argc, argv, "neE")) != -1)
{
printf("Usage: echo [args]\n");
return 0;
switch (opt)
{
case 'n':
disableNewline = 1;
break;
case 'e':
enableEscapes = 1;
break;
case 'E':
enableEscapes = 0;
break;
case '?':
default:
exit(EXIT_FAILURE);
}
}
for (int i = 1; i < argc; i++)
printf("%s ", argv[i]);
printf("\n");
(void)enableEscapes;
size_t totalLength = 0;
for (int i = optind; i < argc; ++i)
totalLength += strlen(argv[i]) + 1;
char *result = (char *)malloc(totalLength);
if (!result)
{
perror("Memory allocation error");
exit(EXIT_FAILURE);
}
result[0] = '\0';
for (int i = optind; i < argc; ++i)
{
strcat(result, argv[i]);
if (i < argc - 1)
strcat(result, " ");
}
printf("%s", result);
if (!disableNewline)
printf("\n");
free(result);
return 0;
}