Changeset 8338a81 in mainline for uspace/lib/c
- Timestamp:
- 2018-06-16T22:20:39Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 379db9ef
- Parents:
- 55092672
- Location:
- uspace/lib/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/Makefile
r55092672 r8338a81 193 193 test/qsort.c \ 194 194 test/sprintf.c \ 195 test/stdlib.c \ 195 196 test/str.c 196 197 -
uspace/lib/c/generic/stdlib.c
r55092672 r8338a81 47 47 } 48 48 49 /** Compute quotient and remainder of int division. 50 * 51 * @param numer Numerator 52 * @param denom Denominator 53 * @return Structure containing quotient and remainder 54 */ 55 div_t div(int numer, int denom) 56 { 57 div_t d; 58 59 d.quot = numer / denom; 60 d.rem = numer % denom; 61 62 return d; 63 } 64 65 /** Compute quotient and remainder of long division. 66 * 67 * @param numer Numerator 68 * @param denom Denominator 69 * @return Structure containing quotient and remainder 70 */ 71 ldiv_t ldiv(long numer, long denom) 72 { 73 ldiv_t d; 74 75 d.quot = numer / denom; 76 d.rem = numer % denom; 77 78 return d; 79 } 80 81 /** Compute quotient and remainder of long long division. 82 * 83 * @param numer Numerator 84 * @param denom Denominator 85 * @return Structure containing quotient and remainder 86 */ 87 lldiv_t lldiv(long long numer, long long denom) 88 { 89 lldiv_t d; 90 91 d.quot = numer / denom; 92 d.rem = numer % denom; 93 94 return d; 95 } 96 49 97 /** @} 50 98 */ -
uspace/lib/c/include/stdlib.h
r55092672 r8338a81 36 36 #define LIBC_STDLIB_H_ 37 37 38 #include <_bits/size_t.h> 39 #include <_bits/wchar_t.h> 38 40 #include <malloc.h> 39 41 #include <qsort.h> 40 42 41 #define RAND_MAX 714025 43 /** Type returned by the div function */ 44 typedef struct { 45 /** Quotient */ 46 int quot; 47 /** Remainder */ 48 int rem; 49 } div_t; 50 51 /** Type returned by the ldiv function */ 52 typedef struct { 53 /** Quotient */ 54 long quot; 55 /** Remainder */ 56 long rem; 57 } ldiv_t; 58 59 /** Type returned by the lldiv function */ 60 typedef struct { 61 /** Quotient */ 62 long long quot; 63 /** Remainder */ 64 long long rem; 65 } lldiv_t; 66 42 67 43 68 #define EXIT_FAILURE 1 44 69 #define EXIT_SUCCESS 0 70 71 #define RAND_MAX 714025 72 73 #define MB_CUR_MAX 4 45 74 46 75 extern int rand(void); … … 59 88 extern unsigned long long strtoull(const char *__restrict__, char **__restrict__, int); 60 89 90 extern div_t div(int, int); 91 extern ldiv_t ldiv(long, long); 92 extern lldiv_t lldiv(long long, long long); 93 61 94 #endif 62 95 -
uspace/lib/c/test/main.c
r55092672 r8338a81 38 38 PCUT_IMPORT(scanf); 39 39 PCUT_IMPORT(sprintf); 40 PCUT_IMPORT(stdlib); 40 41 PCUT_IMPORT(str); 41 42 PCUT_IMPORT(table);
Note:
See TracChangeset
for help on using the changeset viewer.