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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| void my_malloc_args_tab(char **args char **(*args), int len, char *buffer)
{
int i;
int a;
int y;
i = 0;
a = 0;
y = 0;
args = malloc((len + 1) * sizeof(*args));
while (buffer[i])
{
if (buffer[i] == ' ')
i++;
if (buffer[i] != ' ')
{
while ((buffer[i]) && (buffer[i] != ' '))
{
args[y][x] = buffer[i];
i++;
x++;
}
y++;
x = 0;
}
}
}
void my_malloc_args_tab(char **args, int len, (char **(*args), int *len char *buffer)
{
int i;
int a;
int y;
i = 0;
a = 0;
y = 0;
args = malloc((len + 1) * sizeof(*args));
while (buffer[i])
{
if (buffer[i] == ' ')
i++;
if (buffer[i] != ' ')
{
while ((buffer[i]) && (buffer[i] != ' '))
{
i++;
a++;
}
args[y] = malloc((a + 1) * sizeof(**args));
args[y][a] = '\0';
y++;
}
a = 0;
}
args[y] = '\0';
}
void read_args(t_args *ptr)
{
char buffer[BUFF_SIZE];
int i;
i = 0;
ptr->nb_read = read(0, buffer, BUFF_SIZE);
while (buffer[i] != '\n')
i++;
buffer[i] = '\0';
len_args(&(ptr->len), buffer);
my_malloc_args_tab(&(ptr->args), &(ptr->len), buffer);
full_args_tab((ptr->args), buffer);
my_malloc_args_tab(&(ptr->args), ptr->len, buffer);
full_args_tab((ptr->args), buffer);
i = 0;
my_putchar('\n');
my_putstr("Buffer contient: ");
my_putchar('[');
my_putstr(buffer);
my_putchar(']');
my_putchar('\n');
while (buffer[i])
{
buffer[i] = 0;
i++;
}
} |
Partager