void my_append_octal(char *str, int oct, int size) { int i; int j; char tmp[12]; my_init_char(tmp, 12); sprintf(tmp, "%o", oct); i = 0; while (i < size - my_strlen(tmp) - 1) str[i++] = '0'; j = 0; while (i < size) str[i++] = tmp[j++]; }
void my_append_int(char *str, int nbr, int size) { int i; int j; char tmp[12]; my_init_char(tmp, 12); if (nbr != 0) sprintf(tmp, "%d", nbr); i = 0; while (i < size - my_strlen(tmp) - 1) str[i++] = '0'; j = 0; while (i < size) str[i++] = tmp[j++]; str[i] = '\0'; }
void my_append_dev(char *str, int nbr, int size, mode_t st_mode) { int i; int j; char tmp[8]; my_init_char(tmp, 12); if (S_ISCHR(st_mode) || S_ISBLK(st_mode)) { sprintf(tmp, "%d", nbr); i = 0; while (i < size - my_strlen(tmp)) str[i++] = '0'; j = 0; while (i < size) str[i++] = tmp[j++]; } }
static t_my_header *my_init_file() { t_my_header *my_file; if ((my_file = malloc(sizeof(*my_file))) == NULL) exit(EXIT_FAILURE); my_init_char(my_file->name, 100); my_init_nbr(my_file->mode, 8); my_init_nbr(my_file->uid, 8); my_init_nbr(my_file->gid, 8); my_init_nbr(my_file->size, 12); my_init_nbr(my_file->mtime, 12); my_init_nbr(my_file->chksum, 8); my_file->typeflag = '0'; my_init_char(my_file->linkname, 100); my_init_char(my_file->magic, 6); my_init_nbr(my_file->version, 2); my_init_char(my_file->u_name, 32); my_init_char(my_file->g_name, 32); my_init_nbr(my_file->devmajor, 8); my_init_nbr(my_file->devminor, 8); my_init_char(my_file->prefix, 167); return (my_file); }