#include #include #include #include #include #include #include static int write_stdout(const char *token, int length) { int rc; int bytes_written = 0; do { rc = write(1, token + bytes_written, length - bytes_written); if (rc < 0) return rc; bytes_written += rc; } while (bytes_written < length); return bytes_written; } void reverse(char *array, long length) { long start,end; char aux; end=length-1; for(start=0; start9) rest=rest+ 'a'-10; else rest=rest+'0'; *(array+i)=rest; i++; number = number/baza; } if (negative){ *(array+i) = '-'; i++; } reverse(array, i); return array; } char* toStringhex(unsigned long number, int baza) { char *array=(char*)malloc(1001*sizeof(char)); int i = 0; if(number == 0) { *(array+i) = '0'; reverse(array,i); return array; } while (number != 0) { int rest = number % baza; if(rest>9) rest=rest-10+ 'a'; else rest=rest+'0'; *(array+i)=rest; i++; number = number/baza; } reverse(array, i); return array; } unsigned long check(long number) { if((1+(number>>31)-(-number>>31))==0) return(UINT_MAX+number+1); else return number; } int iocla_printf(const char *format, ...) { char *cpy_format=(char*)malloc((strlen(format)-1)*sizeof(char)); strcpy(cpy_format,format); va_list arguments; va_start(arguments, format); long counter=0; long element; char *array; int checked; for(long i=0;i