|
|
@@ -338,16 +338,18 @@ int file_seek (int file, int whence) { |
|
|
|
return ((int) lseek (file, 0, whence)); |
|
|
|
} |
|
|
|
|
|
|
|
int file_size (int file) { |
|
|
|
int size = 0; |
|
|
|
int file_size (char * name) { |
|
|
|
int size = -1; |
|
|
|
int file = -1; |
|
|
|
|
|
|
|
fatal_failure (file == -1, "file_size: Failed to get size of file, invalid descriptor."); |
|
|
|
file = file_open (name, O_RDONLY); |
|
|
|
|
|
|
|
size = lseek (file, 0, SEEK_END); |
|
|
|
(void) lseek (file, 0, SEEK_SET); |
|
|
|
|
|
|
|
fatal_failure (size == -1, "file_size: Failed to get size of file, invalid file size."); |
|
|
|
|
|
|
|
file = file_close (file); |
|
|
|
|
|
|
|
return (size); |
|
|
|
} |
|
|
|
|
|
|
@@ -372,16 +374,33 @@ int file_type (char * name) { |
|
|
|
return (-1); |
|
|
|
} |
|
|
|
|
|
|
|
void * file_record (char * name) { |
|
|
|
int file = -1; |
|
|
|
int size = -1; |
|
|
|
char * data = NULL; |
|
|
|
|
|
|
|
fatal_failure (name == NULL, "file_import: Failed to import file, name is null pointer."); |
|
|
|
|
|
|
|
file = file_open (name, O_RDONLY); |
|
|
|
size = file_size (name); |
|
|
|
data = allocate (size); |
|
|
|
|
|
|
|
file_read (file, data, size); |
|
|
|
|
|
|
|
file = file_close (file); |
|
|
|
|
|
|
|
return (data); |
|
|
|
} |
|
|
|
|
|
|
|
char * file_import (char * name) { |
|
|
|
int file = -1; |
|
|
|
int size = -1; |
|
|
|
char * data = NULL; |
|
|
|
|
|
|
|
fatal_failure (name == NULL, "file_import: Failed to import file, name is null pointer."); |
|
|
|
fatal_failure (data != NULL, "file_import: Failed to import file, data is not null pointer."); |
|
|
|
|
|
|
|
file = file_open (name, O_RDONLY); |
|
|
|
size = file_size (file) + 1; |
|
|
|
size = file_size (name) + 1; |
|
|
|
data = allocate (size); |
|
|
|
|
|
|
|
file_read (file, data, size - 1); |
|
|
@@ -537,18 +556,17 @@ char * string_reverse_limit (char * string, int limit) { |
|
|
|
|
|
|
|
fatal_failure (string == NULL, "string_reverse: String is null pointer."); |
|
|
|
|
|
|
|
for (i = 0; i != limit / 2; ++i) { |
|
|
|
char reverse_0 = string [limit - i]; |
|
|
|
char reverse_1 = string [i]; |
|
|
|
string [i] = reverse_0; |
|
|
|
string [limit - i] = reverse_1; |
|
|
|
for (i = 0; i < limit / 2; ++i) { |
|
|
|
char temporary = string [i]; |
|
|
|
string [i] = string [limit - 1 - i]; |
|
|
|
string [limit - 1 - i] = temporary; |
|
|
|
} |
|
|
|
|
|
|
|
return (string); |
|
|
|
} |
|
|
|
|
|
|
|
char * string_reverse (char * string) { |
|
|
|
return (string_reverse_limit (string, string_length (string) - 1)); |
|
|
|
return (string_reverse_limit (string, string_length (string))); |
|
|
|
} |
|
|
|
|
|
|
|
char * string_delete (char * string, int length) { |
|
|
@@ -783,13 +801,24 @@ char * decode_byte (int byte) { |
|
|
|
return (decode); |
|
|
|
} |
|
|
|
|
|
|
|
void number_to_string (int number, char * string) { |
|
|
|
int i; |
|
|
|
char * number_to_string (int number) { |
|
|
|
int i, sign; |
|
|
|
|
|
|
|
static char string [32]; |
|
|
|
|
|
|
|
string_delete (string, 32); |
|
|
|
|
|
|
|
if (number == 0) { |
|
|
|
string [0] = '0'; |
|
|
|
string [1] = '\0'; |
|
|
|
return (string); |
|
|
|
} |
|
|
|
|
|
|
|
if (number < 0) { |
|
|
|
string [0] = '-'; |
|
|
|
++i; |
|
|
|
number *= -1; |
|
|
|
sign = 1; |
|
|
|
} else { |
|
|
|
sign = 0; |
|
|
|
} |
|
|
|
|
|
|
|
for (i = (string [0] == '-'); number != 0; ++i) { |
|
|
@@ -797,9 +826,16 @@ void number_to_string (int number, char * string) { |
|
|
|
number /= 10; |
|
|
|
} |
|
|
|
|
|
|
|
if (sign != 0) { |
|
|
|
string [i] = '-'; |
|
|
|
++i; |
|
|
|
} |
|
|
|
|
|
|
|
string [i] = '\0'; |
|
|
|
|
|
|
|
string_reverse (string); |
|
|
|
|
|
|
|
return (string); |
|
|
|
} |
|
|
|
|
|
|
|
#endif |