You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 satır
7.1KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>strtoul (The Red Hat newlib C Library)</title>
  7. <meta name="description" content="strtoul (The Red Hat newlib C Library)">
  8. <meta name="keywords" content="strtoul (The Red Hat newlib C Library)">
  9. <meta name="resource-type" content="document">
  10. <meta name="distribution" content="global">
  11. <meta name="Generator" content="makeinfo">
  12. <link href="index.html#Top" rel="start" title="Top">
  13. <link href="Document-Index.html#Document-Index" rel="index" title="Document Index">
  14. <link href="Document-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
  15. <link href="Stdlib.html#Stdlib" rel="up" title="Stdlib">
  16. <link href="strtoull.html#strtoull" rel="next" title="strtoull">
  17. <link href="strtoll.html#strtoll" rel="prev" title="strtoll">
  18. <style type="text/css">
  19. <!--
  20. a.summary-letter {text-decoration: none}
  21. blockquote.indentedblock {margin-right: 0em}
  22. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  23. blockquote.smallquotation {font-size: smaller}
  24. div.display {margin-left: 3.2em}
  25. div.example {margin-left: 3.2em}
  26. div.lisp {margin-left: 3.2em}
  27. div.smalldisplay {margin-left: 3.2em}
  28. div.smallexample {margin-left: 3.2em}
  29. div.smalllisp {margin-left: 3.2em}
  30. kbd {font-style: oblique}
  31. pre.display {font-family: inherit}
  32. pre.format {font-family: inherit}
  33. pre.menu-comment {font-family: serif}
  34. pre.menu-preformatted {font-family: serif}
  35. pre.smalldisplay {font-family: inherit; font-size: smaller}
  36. pre.smallexample {font-size: smaller}
  37. pre.smallformat {font-family: inherit; font-size: smaller}
  38. pre.smalllisp {font-size: smaller}
  39. span.nolinebreak {white-space: nowrap}
  40. span.roman {font-family: initial; font-weight: normal}
  41. span.sansserif {font-family: sans-serif; font-weight: normal}
  42. ul.no-bullet {list-style: none}
  43. -->
  44. </style>
  45. </head>
  46. <body lang="en">
  47. <a name="strtoul"></a>
  48. <div class="header">
  49. <p>
  50. Next: <a href="strtoull.html#strtoull" accesskey="n" rel="next">strtoull</a>, Previous: <a href="strtoll.html#strtoll" accesskey="p" rel="prev">strtoll</a>, Up: <a href="Stdlib.html#Stdlib" accesskey="u" rel="up">Stdlib</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  51. </div>
  52. <hr>
  53. <a name="strtoul_002c-strtoul_005fl_002d_002d_002dstring-to-unsigned-long"></a>
  54. <h3 class="section">2.40 <code>strtoul</code>, <code>strtoul_l</code>&mdash;string to unsigned long</h3>
  55. <a name="index-strtoul"></a>
  56. <a name="index-strtoul_005fl"></a>
  57. <a name="index-_005fstrtoul_005fr"></a>
  58. <p><strong>Synopsis</strong>
  59. </p><div class="example">
  60. <pre class="example">#include &lt;stdlib.h&gt;
  61. unsigned long strtoul(const char *restrict <var>s</var>,
  62. char **restrict <var>ptr</var>, int <var>base</var>);
  63. #include &lt;stdlib.h&gt;
  64. unsigned long strtoul_l(const char *restrict <var>s</var>,
  65. char **restrict <var>ptr</var>, int <var>base</var>,
  66. locale_t <var>locale</var>);
  67. unsigned long _strtoul_r(void *<var>reent</var>, const char *restrict <var>s</var>,
  68. char **restrict <var>ptr</var>, int <var>base</var>);
  69. </pre></div>
  70. <p><strong>Description</strong><br>
  71. The function <code>strtoul</code> converts the string <code>*<var>s</var></code> to
  72. an <code>unsigned long</code>. First, it breaks down the string into three parts:
  73. leading whitespace, which is ignored; a subject string consisting
  74. of the digits meaningful in the radix specified by <var>base</var>
  75. (for example, <code>0</code> through <code>7</code> if the value of <var>base</var> is 8);
  76. and a trailing portion consisting of one or more unparseable characters,
  77. which always includes the terminating null character. Then, it attempts
  78. to convert the subject string into an unsigned long integer, and returns the
  79. result.
  80. </p>
  81. <p>If the value of <var>base</var> is zero, the subject string is expected to look
  82. like a normal C integer constant (save that no optional sign is permitted):
  83. a possible <code>0x</code> indicating hexadecimal radix, and a number.
  84. If <var>base</var> is between 2 and 36, the expected form of the subject is a
  85. sequence of digits (which may include letters, depending on the
  86. base) representing an integer in the radix specified by <var>base</var>.
  87. The letters <code>a</code>&ndash;<code>z</code> (or <code>A</code>&ndash;<code>Z</code>) are used as digits valued from
  88. 10 to 35. If <var>base</var> is 16, a leading <code>0x</code> is permitted.
  89. </p>
  90. <p>The subject sequence is the longest initial sequence of the input
  91. string that has the expected form, starting with the first
  92. non-whitespace character. If the string is empty or consists entirely
  93. of whitespace, or if the first non-whitespace character is not a
  94. permissible digit, the subject string is empty.
  95. </p>
  96. <p>If the subject string is acceptable, and the value of <var>base</var> is zero,
  97. <code>strtoul</code> attempts to determine the radix from the input string. A
  98. string with a leading <code>0x</code> is treated as a hexadecimal value; a string with
  99. a leading <code>0</code> and no <code>x</code> is treated as octal; all other strings are
  100. treated as decimal. If <var>base</var> is between 2 and 36, it is used as the
  101. conversion radix, as described above. Finally, a pointer to the first
  102. character past the converted subject string is stored in <var>ptr</var>, if
  103. <var>ptr</var> is not <code>NULL</code>.
  104. </p>
  105. <p>If the subject string is empty (that is, if <code>*</code><var>s</var> does not start
  106. with a substring in acceptable form), no conversion
  107. is performed and the value of <var>s</var> is stored in <var>ptr</var> (if <var>ptr</var> is
  108. not <code>NULL</code>).
  109. </p>
  110. <p><code>strtoul_l</code> is like <code>strtoul</code> but performs the conversion based on the
  111. locale specified by the locale object locale. If <var>locale</var> is
  112. LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined.
  113. </p>
  114. <p>The alternate function <code>_strtoul_r</code> is a reentrant version. The
  115. extra argument <var>reent</var> is a pointer to a reentrancy structure.
  116. </p>
  117. <br>
  118. <p><strong>Returns</strong><br>
  119. <code>strtoul</code>, <code>strtoul_l</code> return the converted value, if any. If no
  120. conversion was made, <code>0</code> is returned.
  121. </p>
  122. <p><code>strtoul</code>, <code>strtoul_l</code> return <code>ULONG_MAX</code> if the magnitude of the
  123. converted value is too large, and sets <code>errno</code> to <code>ERANGE</code>.
  124. </p>
  125. <br>
  126. <p><strong>Portability</strong><br>
  127. <code>strtoul</code> is ANSI.
  128. <code>strtoul_l</code> is a GNU extension.
  129. </p>
  130. <p><code>strtoul</code> requires no supporting OS subroutines.
  131. </p>
  132. <br>
  133. <hr>
  134. <div class="header">
  135. <p>
  136. Next: <a href="strtoull.html#strtoull" accesskey="n" rel="next">strtoull</a>, Previous: <a href="strtoll.html#strtoll" accesskey="p" rel="prev">strtoll</a>, Up: <a href="Stdlib.html#Stdlib" accesskey="u" rel="up">Stdlib</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  137. </div>
  138. </body>
  139. </html>