94 lines
1.4 KiB
C
94 lines
1.4 KiB
C
#include "../includes/philo_header.h"
|
|
|
|
t_all *structalloc_and_bzero(void)
|
|
{
|
|
t_all *all;
|
|
|
|
all = ft_calloc(sizeof(t_all), 1);
|
|
all->number_of_philosophers = -1;
|
|
all->time_to_die = -1;
|
|
all->time_to_eat = -1;
|
|
all->time_to_sleep = -1;
|
|
all->number_of_times_each_philosopher_must_eat = -1;
|
|
return (all);
|
|
}
|
|
|
|
size_t ft_strlcpy(char *dst, const char *src, size_t size)
|
|
{
|
|
unsigned int i;
|
|
unsigned int count;
|
|
|
|
count = 0;
|
|
if (!dst && !src)
|
|
return (0);
|
|
while (src[count] != '\0')
|
|
{
|
|
++count;
|
|
}
|
|
i = 0;
|
|
if (size > 0)
|
|
{
|
|
while (src[i] != '\0' && i < (size - 1) && src[i])
|
|
{
|
|
dst[i] = src[i];
|
|
++i;
|
|
}
|
|
dst[i] = '\0';
|
|
}
|
|
return (count);
|
|
}
|
|
|
|
size_t ft_strlcat(char *dst, const char *src, size_t size)
|
|
{
|
|
unsigned int i;
|
|
unsigned int len;
|
|
|
|
len = 0;
|
|
if (!dst && !src)
|
|
return (0);
|
|
len = ft_strlen(dst);
|
|
i = 0;
|
|
if (size < len)
|
|
return (ft_strlen((char *)src) + size);
|
|
if (size)
|
|
{
|
|
while (src[i] && len + 1 < size)
|
|
dst[len++] = src[i++];
|
|
dst[len] = '\0';
|
|
}
|
|
while (src[i])
|
|
{
|
|
i++;
|
|
len++;
|
|
}
|
|
return (len);
|
|
}
|
|
|
|
|
|
int ft_strlen(char *str)
|
|
{
|
|
int i;
|
|
|
|
i = 0;
|
|
while (str[i])
|
|
i++;
|
|
return (i);
|
|
}
|
|
|
|
char *sem_set_name(char *str, int i)
|
|
{
|
|
char *temp_nbr;
|
|
char *returnstr;
|
|
|
|
temp_nbr = ft_itoa(i);
|
|
returnstr = ft_strjoin(str, temp_nbr);
|
|
free(temp_nbr);
|
|
return (returnstr);
|
|
}
|
|
|
|
sem_t *reopen_sem(const char *name, int value)
|
|
{
|
|
sem_unlink(name);
|
|
return (sem_open(name, O_RDWR | O_CREAT, S_IRWXU, value));
|
|
}
|