C 標準函式庫

目錄

Valid XHTML 1.0 Strict Valid CSS!

<assert.h>

void assert(int expression);
用來偵測錯誤的巨集(當引入<assert.h>後在NDEBUG被定義時忽略。)如果expression等於零,就會在stderr輸出訊息,並且呼叫abort結束程式。訊息裡的程式檔名與行號是來自於預處理程式的預設巨集__FILE____LINE__.

[目錄]


<ctype.h>

int isalnum(int c);
isalpha(c)isdigit(c)
int isalpha(int c);
isupper(c)islower(c)
int iscntrl(int c);
是否為控制字元。在ASCII中,控制字元為0x00NUL)至0x1FUS),還有0x7FDEL)。
int isdigit(int c);
是否為數值字元。
int isgraph(int c);
是否為非空白的可列印字元。
int islower(int c);
是否為小寫字母字元。
int isprint(int c);
是否為可列印字元(包括空白)。在ASCII,可列印字元為0x20' ')至0x7E'~'
int ispunct(int c);
是否為非空白字元、字母字元、數字字元的可列印字元。
int isspace(int c);
是否為空白字元、換頁字元、換行字元、回車字元、水平製表字元、垂直製表字元。
int isupper(int c);
是否為大寫寫字母字元。
int isxdigit(int c);
是否為十六進位數值字元。
int tolower(int c);
傳回等價小寫字母字元。
int toupper(int c);
傳回等價大寫字母字元。

[目錄]


<errno.h>

errno
用來讓標準函式庫的某些函式發生錯誤時設定成特定的正值。
EDOM
代表不在定義域錯誤的值。
ERANGE
代表溢位錯誤的值。

註:

[目錄]


<float.h>

FLT_RADIX
浮點數的基數
FLT_ROUNDS
浮點數的捨去模式
-1
未定
0
往0捨去
1
往最近的值捨去
2
往正無限大捨去
3
往負無限大捨去

前置詞「FLT」用於float型態,「DBL」用於double,而「LDBL」用於long double型態。

FLT_DIG
DBL_DIG
LDBL_DIG
精確度(十進位數字)。
FLT_EPSILON
DBL_EPSILON
LDBL_EPSILON
最小的數x使得1.0 + x != 1.0成立。
FLT_MANT_DIG
DBL_MANT_DIG
LDBL_MANT_DIG
浮點數小數部份的位數個數,是以 FLT_RADIX 進位為主。
FLT_MAX
DBL_MAX
LDBL_MAX
最大值
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
largest positive integer exponent to which FLT_RADIX can be raised and remain representable
FLT_MIN
DBL_MIN
LDBL_MIN
正規劃後最小的數字。
FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
smallest negative integer exponent to which FLT_RADIX can be raised and remain representable

[目錄]


<limits.h>

CHAR_BIT
型態char中有幾bit。
CHAR_MAX
型態char的最大值。
CHAR_MIN
型態char的最小值。
SCHAR_MAX
型態signed char的最大值。
SCHAR_MIN
型態signed char的最小值。
UCHAR_MAX
型態unsigned char的最大值。
SHRT_MAX
型態short的最大值。
SHRT_MIN
型態short的最小值。
USHRT_MAX
型態unsigned short的最大值。
INT_MAX
型態int的最大值。
INT_MIN
型態int的最小值。
UINT_MAX
型態unsigned int的最大值。
LONG_MAX
型態long的最大值。
LONG_MIN
型態long的最小值。
ULONG_MAX
型態unsigned long的最大值。

[目錄]


<locale.h>

struct lconv
描述貨幣格式和其他數值:
char* decimal_point;
非貨幣值的小數點。
char* grouping;
sizes of digit groups for non-monetary values
char* thousands_sep;
separator for digit groups for non-monetary values (left of "decimal point")
char* currency_symbol;
貨幣符號。
char* int_curr_symbol;
ISO 4217國際貨幣代號。
char* mon_decimal_point;
貨幣值的小數點。
char* mon_grouping;
sizes of digit groups for monetary values
char* mon_thousands_sep;
separator for digit groups for monetary values (left of "decimal point")
char* negative_sign;
貨幣值的負數記號。
char* positive_sign;
貨幣值的正數記號。
char frac_digits;
貨幣值顯示小數點以下幾位。
char int_frac_digits;
國際貨幣值顯示小數點以下幾位。
char n_cs_precedes;
貨幣符號在負數貨幣值的前方(1)或後方(0)。
char n_sep_by_space;
whether currency symbol is (1) or is not (0) separated by space from negative monetary values
char n_sign_posn;
format for negative monetary values:
0
parentheses surround quantity and currency symbol
1
sign precedes quantity and currency symbol
2
sign follows quantity and currency symbol
3
sign immediately precedes currency symbol
4
sign immediately follows currency symbol
char p_cs_precedes;
貨幣符號在正數貨幣值的前方(1)或後方(0)。
char p_sep_by_space;
whether currency symbol is (1) or is not (0) separated by space from non-negative monetary values
char p_sign_posn;
format for non-negative monetary values, with values as for n_sign_posn
Implementations may change field order and include additional fields. Standard C Library functions use only decimal_point.
struct lconv* localeconv(void);
returns pointer to formatting information for current locale
char* setlocale(int category, const char* locale);
Sets components of locale according to specified category and locale. Returns string describing new locale or null on error. (Implementations are permitted to define values of category additional to those describe here.)
LC_ALL
category argument for all categories
LC_NUMERIC
category for numeric formatting information
LC_MONETARY
category for monetary formatting information
LC_COLLATE
category for information affecting collating functions
LC_CTYPE
category for information affecting character class tests functions
LC_TIME
category for information affecting time conversions functions
NULL
空指標常數。

[目錄]


<math.h>

發生定義域錯誤時,errno會被設成EDOM。發生溢位錯誤時,errno會被設成ERANGE。溢位時傳回和結果同正負號的HUGE_VAL,而下溢時傳回0。角度單位為徑度。

HUGE_VAL
發生溢位錯誤時傳回的值(和結果同正負號)。
double exp(double x);
x的指數。
double log(double x);
x的自然對數。
double log10(double x);
x以10為底的對數。
double pow(double x, double y);
xy次方。
double sqrt(double x);
x的平方根。
double ceil(double x);
x大的最小整數。
double floor(double x);
x小的最大整數。
double fabs(double x);
x的絕對值。
double ldexp(double x, int n);
x 乘以 2 的 n 次方
double frexp(double x, int* exp);
如果 x 不為零,回傳一個絕對值在 [1/2, 1) 區間的數值,並且寫入一個數值到 *exp ,使得回傳值乘以 2 的 *exp 次方等於 x。如果 x 是 0 ,回傳值和 *exp 都會是 0
double modf(double x, double* ip);
returns fractional part and assigns to *ip integral part of x, both with same sign as x
double fmod(double x, double y);
if y non-zero, floating-point remainder of x/y, with same sign as x; if y zero, result is implementation-defined
double sin(double x);
sine of x
double cos(double x);
cosine of x
double tan(double x);
tangent of x
double asin(double x);
arc-sine of x
double acos(double x);
arc-cosine of x
double atan(double x);
arc-tangent of x
double atan2(double y, double x);
arc-tangent of y/x
double sinh(double x);
hyperbolic sine of x
double cosh(double x);
hyperbolic cosine of x
double tanh(double x);
hyperbolic tangent of x

[目錄]


<setjmp.h>

jmp_buf
type of object holding context information
int setjmp(jmp_buf env);
Saves context information in env and returns zero. Subsequent call to longjmp with same env returns non-zero.
void longjmp(jmp_buf env, int val);
Restores context saved by most recent call to setjmp with specified env. Execution resumes as a second return from setjmp, with returned value val if specified value non-zero, or 1 otherwise.

[目錄]


<signal.h>

SIGABRT
abnormal termination
SIGFPE
arithmetic error
SIGILL
invalid execution
SIGINT
(asynchronous) interactive attention
SIGSEGV
illegal storage access
SIGTERM
(asynchronous) termination request
SIG_DFL
specifies default signal handling
SIG_ERR
signal return value indicating error
SIG_IGN
specifies that signal should be ignored
void (*signal(int sig, void (*handler)(int)))(int);
Install handler for subsequent signal sig. If handler is SIG_DFL, implementation-defined default behaviour will be used; if SIG_IGN, signal will be ignored; otherwise function pointed to by handler will be invoked with argument sig. In the last case, handling is restored to default behaviour before handler is called. If handler returns, execution resumes where signal occurred. signal returns the previous handler or SIG_ERR on error. Initial state is implementation-defined. Implementations may may define signals additional to those listed here.
int raise(int sig);
Sends signal sig. Returns zero on success.

[目錄]


<stdarg.h>

va_list
type of object holding context information
void va_start(va_list ap, lastarg);
Initialisation macro which must be called once before any unnamed argument is accessed. Stores context information in ap. lastarg is the last named parameter of the function.
type va_arg(va_list ap, type);
Yields value of the type (type) and value of the next unnamed argument.
void va_end(va_list ap);
Termination macro which must be called once after argument processing and before exit from function.

[目錄]


<stddef.h>

NULL
Null pointer constant.
offsetof(stype, m)
Offset (in bytes) of member m from start of structure type stype.
ptrdiff_t
Type for objects declared to store result of subtracting pointers.
size_t
Type for objects declared to store result of sizeof operator.

[目錄]


<stdio.h>

BUFSIZ
setbuf函式使用的預設緩衝區大小。
EOF
表示資料流結束或資料流讀取錯誤的值。
FILENAME_MAX
檔案名稱的長度上限。
FOPEN_MAX
同時可開啟檔案的數目上限。
L_tmpnam
tmpnam函式需要多大的字元陣列來儲存暫存檔檔名。
NULL
空指標常數。
SEEK_CUR
fseek函式的origin參數值,代表檔案目前位置。
SEEK_END
fseek函式的origin參數值,代表檔案結尾。
SEEK_SET
fseek函式的origin參數值,代表檔案開頭。
TMP_MAX
tmpnam函式最少能產生多少不重複的暫存檔檔名。
_IOFBF
setvbuf函式的mode參數值,代表緩衝器填滿後釋出。
_IOLBF
setvbuf函式的mode參數值,代表緩衝器遇到換行後釋出。
_IONBF
setvbuf函式的mode參數值,代表不使用緩衝器。
stdin
指向標準輸入字元流的檔案指標。程式開始執行時會被自動開啟。
stdout
指向標準輸出字元流的檔案指標。程式開始執行時會被自動開啟。
stderr
指向標準錯誤輸出字元流的檔案指標。程式開始執行時會被自動開啟。
FILE
宣告含有控制字元流所需資訊的物件類型。
fpos_t
宣告檔案游標位置資訊的物件類型。
size_t
宣告用來儲存sizeof運算子結果的物件類型。
FILE* fopen(const char* filename, const char* mode);
開啟檔名為filename的檔案並傳回字元流,失敗時傳回NULLmode 可以是以下選項:
"r"
以純文字檔案方式讀取。
"w"
以純文字檔案方式寫入。
"a"
以純文字檔案方式添加在尾端。
"r+"
以純文字檔案方式更新(讀取、寫入)。
"w+"
以純文字檔案方式更新,清除原始檔案內容(如果有的話)。
"a+"
以純文字檔案方式添加在尾端,在尾端讀取和寫入。
或是在以上字串插入b(要在第一個字元以後),表示以二進位檔案方式。
FILE* freopen(const char* filename, const char* mode, FILE* stream);
關閉stream指向的檔案,然後以指定的模式開啟檔名為filename的檔案,將stream與之連結。傳回stream,錯誤時傳回NULL
int fflush(FILE* stream);
釋出字元流stream的緩衝器,成功時傳回0或失敗時傳回EOF。對不可輸出的字元流使用時,效果未定義。fflush(NULL)會釋出所有輸出用字元流的緩衝器。
int fclose(FILE* stream);
關閉stream指向的字元流(如果是輸出用字元流,則先釋出緩衝區)。錯誤時傳回EOF,否則傳回0。
int remove(const char* filename);
移除指定檔案。錯誤時傳回非0的值。
int rename(const char* oldname, const char* newname);
把檔案oldname更名成newname。失敗時傳回非0的值。
FILE* tmpfile();
建立暫存檔案(模式為"wb+"),此檔案被關閉或程式正常結束時會被刪除。傳回字元流,失敗時傳回NULL
char* tmpname(char s[L_tmpnam]);
s寫入(如果s不是NULL)並傳回一個唯一的暫存檔檔名。此檔名對於前TMP_MAX次函數呼叫的結果都是不同的。
int setvbuf(FILE* stream, char* buf, int mode, size_t size);
Controls buffering for stream stream. mode is _IOFBF for full buffering, _IOLBF for line buffering, _IONBF for no buffering. Non-null buf specifies buffer of size size to be used; otherwise, a buffer is allocated. Returns non-zero on error. Call must be before any other operation on stream.
void setbuf(FILE* stream, char* buf);
Controls buffering for stream stream. For null buf, turns off buffering, otherwise equivalent to (void)setvbuf(stream buf_IOFBF BUFSIZ).
int fprintf(FILE* stream, const char* format, ...);
根據字串format轉換參數,並且輸出到字元流stream。傳回輸出的字元數目,發生錯誤時傳回負數。轉換指令包含:
  • %
  • (可選擇) 旗標:
    -
    靠左對齊
    +
    永遠有正負號
    space
    正號時加上空白
    0
    以0填空格
    #
    Alternate form: for conversion character o, first digit will be zero, for [xX], prefix 0x or 0X to non-zero value, for [eEfgG], always decimal point, for [gG] trailing zeros not removed.
  • (可選擇) 最小寬度:如果標示為 * ,則從下個參數取值(型態必須要是int)。
  • (可選擇) . (分開精確度標示與最小寬度標示):
  • (可選擇) 精確度:對於轉換字元s,代表該字串最多輸出多少字元,對於[eEf],代表小數點後的位數,對於[gG],代表有效位數,對於整數,代表最少要輸出幾位數。如果標示為 * ,則從下個參數取值(型態必須要是int)。
  • (可選擇) 型態長度修飾字:
    h
    short或是unsigned short
    l
    long或是unsigned long
    L
    long double
  • 轉換字元:
    d,i
    型態int的參數,視為有正負號的十進位數輸出
    o
    型態int的參數,視為有正負號的八進位數輸出
    x,X
    型態int的參數,視為有正負號的十六進位數輸出
    u
    型態int的參數,視為無正負號的十進位數輸出
    c
    型態int的參數,視為單一字元輸出
    s
    型態char*的參數
    f
    型態double的參數,以[-]mmm.ddd的格式輸出
    e,E
    型態double的參數,以[-]m.dddddd(e|E)(+|-)xx的格式輸出
    g,G
    型態double的參數
    p
    型態void*的參數,以指標位址輸出
    n
    型態int*的參數:到目前為止已輸出的字元數目將寫回此參數
    %
    不需要參數;輸出%
int printf(const char* format, ...);
printf(f, ...)等價於fprintf(stdout, f, ...)
int sprintf(char* s, const char* format, ...);
像是 fprintf ,但是資料是輸出到字串 s ,其 必須大到能保存全部輸出 ,不像字串流。輸出會以 NUL 結尾。回傳輸出長度(不包含 NUL )。
int vfprintf(FILE* stream, const char* format, va_list arg);
Equivalent to fprintf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
int vprintf(const char* format, va_list arg);
Equivalent to printf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
int vsprintf(char* s, const char* format, va_list arg);
Equivalent to sprintf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
int fscanf(FILE* stream, const char* format, ...);
Performs formatted input conversion, reading from stream stream according to format format. The function returns when format is fully processed. Returns number of items converted and assigned, or EOF if end-of-file or error occurs before any conversion. Each of the arguments following format must be a pointer. Format string may contain:
  • blanks and tabs, which are ignored
  • ordinary characters, which are expected to match next non-white-space of input
  • conversion specifications, consisting of:
    • %
    • (optional) assignment suppression character "*"
    • (optional) maximum field width
    • (optional) target width indicator:
      h
      argument is pointer to short rather than int
      l
      argument is pointer to long rather than int, or double rather than float
      L
      argument is pointer to long double rather than float
    • conversion character:
      d
      decimal integer; int* parameter required
      i
      integer; int* parameter required; decimal, octal or hex
      o
      octal integer; int* parameter required
      u
      unsigned decimal integer; unsigned int* parameter required
      x
      hexadecimal integer; int* parameter required
      c
      characters; char* parameter required; white-space is not skipped, and NUL-termination is not performed
      s
      string of non-white-space; char* parameter required; string is NUL-terminated
      e,f,g
      floating-point number; float* parameter required
      p
      pointer value; void* parameter required
      n
      chars read so far; int* parameter required
      [...]
      longest non-empty string from specified set; char* parameter required; string is NUL-terminated
      [^...]
      longest non-empty string not from specified set; char* parameter required; string is NUL-terminated
      %
      literal %; no assignment
int scanf(const char* format, ...);
scanf(f, ...) is equivalent to fscanf( stdin, f, ...)
int sscanf(char* s, const char* format, ...);
Like fscanf, but input read from string s.
int fgetc(FILE* stream);
Returns next character from (input) stream stream, or EOF on end-of-file or error.
char* fgets(char* s, int n, FILE* stream);
Copies characters from (input) stream stream to s, stopping when n-1 characters copied, newline copied, end-of-file reached or error occurs. If no error, s is NUL-terminated. Returns NULL on end-of-file or error, s otherwise.
int fputc(int c, FILE* stream);
Writes c, to stream stream. Returns c, or EOF on error.
char* fputs(const char* s, FILE* stream);
Writes s, to (output) stream stream. Returns non-negative on success or EOF on error.
int getc(FILE* stream);
Equivalent to fgetc except that it may be a macro.
int getchar(void);
Equivalent to getc(stdin).
char* gets(char* s);
Copies characters from stdin into s until newline encountered, end-of-file reached, or error occurs. Does not copy newline. NUL-terminates s. Returns s, or NULL on end-of-file or error. Should not be used because of the potential for buffer overflow.
int putc(int c, FILE* stream);
Equivalent to fputc except that it may be a macro.
int putchar(int c);
putchar(c) is equivalent to putc(c, stdout).
int puts(const char* s);
Writes s (excluding terminating NUL) and a newline to stdout. Returns non-negative on success, EOF on error.
int ungetc(int c, FILE* stream);
Pushes c (which must not be EOF), onto (input) stream stream such that it will be returned by the next read. Only one character of pushback is guaranteed (for each stream). Returns c, or EOF on error.
size_t fread(void* ptr, size_t size, size_t nobj, FILE* stream);
Reads (at most) nobj objects of size size from stream stream into ptr and returns number of objects read. (feof and ferror can be used to check status.)
size_t fwrite(const void* ptr, size_t size, size_t nobj, FILE* stream);
Writes to stream stream, nobj objects of size size from array ptr. Returns number of objects written.
int fseek(FILE* stream, long offset, int origin);
Sets file position for stream stream and clears end-of-file indicator. For a binary stream, file position is set to offset bytes from the position indicated by origin: beginning of file for SEEK_SET, current position for SEEK_CUR, or end of file for SEEK_END. Behaviour is similar for a text stream, but offset must be zero or, for SEEK_SET only, a value returned by ftell. Returns non-zero on error.
long ftell(FILE* stream);
Returns current file position for stream stream, or -1 on error.
void rewind(FILE* stream);
Equivalent to fseek(stream, 0L, SEEK_SET); clearerr(stream).
int fgetpos(FILE* stream, fpos_t* ptr);
Stores current file position for stream stream in *ptr. Returns non-zero on error.
int fsetpos(FILE* stream, const fpos_t* ptr);
Sets current position of stream stream to *ptr. Returns non-zero on error.
void clearerr(FILE* stream);
Clears end-of-file and error indicators for stream stream.
int feof(FILE* stream);
Returns non-zero if end-of-file indicator is set for stream stream.
int ferror(FILE* stream);
Returns non-zero if error indicator is set for stream stream.
void perror(const char* s);
Prints s (if non-null) and strerror( errno) to standard error as would:
fprintf(stderr, "%s: %s\n", (s != NULL ? s : ""), strerror(errno))
					

[目錄]


<stdlib.h>

EXIT_FAILURE
Value for status argument to exit indicating failure.
EXIT_SUCCESS
Value for status argument to exit indicating success.
RAND_MAX
Maximum value returned by rand().
NULL
Null pointer constant.
div_t
Return type of div(). Structure having members:
int quot;
quotient
int rem;
remainder
ldiv_t
Return type of ldiv(). Structure having members:
long quot;
quotient
long rem;
remainder
size_t
Type for objects declared to store result of sizeof operator.
int abs(int n);
long labs(long n);
Returns absolute value of n.
div_t div(int num, int denom);
ldiv_t ldiv(long num, long denom);
Returns quotient and remainder of num/denom.
double atof(const char* s);
Equivalent to strtod(s, (char**)NULL) except that errno is not necessarily set on conversion error.
int atoi(const char* s);
Equivalent to (int)strtol(s, (char**)NULL, 10) except that errno is not necessarily set on conversion error.
long atol(const char* s);
Equivalent to strtol(s, (char**)NULL, 10) except that errno is not necessarily set on conversion error.
double strtod(const char* s, char** endp);
Converts initial characters (ignoring leading white space) of s to type double. If endp non-null, stores pointer to unconverted suffix in *endp. On overflow, sets errno to ERANGE and returns HUGE_VAL with the appropriate sign; on underflow, sets errno to ERANGE and returns zero; otherwise returns converted value.
long strtol(const char* s, char** endp, int base);
Converts initial characters (ignoring leading white space) of s to type long. If endp non-nu ll, stores pointer to unconverted suffix in *endp. If base between 2 and 36, that base used for conversion; if zero, leading (after any sign) 0X or 0x implies hexadecimal, leading 0 (after any sign) implies octal, otherwise decimal assumed. Leading 0X or 0x permitted for base hexadecimal. On overflow, sets errno to ERANGE and returns LONG_MAX or LONG_MIN (as appropriate for sign); otherwise returns converted value.
unsigned long strtoul(const char* s, char** endp, int base);
As for strtol except result is unsigned long and value on overflow is ULONG_MAX.
void* calloc(size_t nobj, size_t size);
Returns pointer to zero-initialised newly-allocated space for an array of nobj objects each of size size, or NULL on error.
void* malloc(size_t size);
Returns pointer to uninitialised newly-allocated space for an object of size size, or NULL on error.
void* realloc(void* p, size_t size);
Returns pointer to newly-allocated space for an object of size size, initialised, to minimum of old and new sizes, to existing contents of p (if non-null), or NULL on error. On success, old object deallocated, otherwise unchanged.
void free(void* p);
If p non-null, deallocates space to which it points.
void abort();
Terminates program abnormally, by calling raise( SIGABRT).
void exit(int status);
Terminates program normally. Functions installed using atexit are called (in reverse order to that in which installed), open files are flushed, open streams are closed and control is returned to environment. status is returned to environment in implementation-dependent manner. Zero or EXIT_SUCCESS indicates successful termination and EXIT_FAILURE indicates unsuccessful termination. Implementations may define other values.
int atexit(void (*fcm)(void));
Registers fcn to be called when program terminates normally (or when main returns). Returns non-zero on failure.
int system(const char* s);
If s is not NULL, passes s to environment for execution, and returns status reported by command processor; if s is NULL, non-zero returned if environment has a command processor.
char* getenv(const char* name);
Returns string associated with name name from implementation's environment, or NULL if no such string exists.
void* bsearch(const void* key, const void* base, size_t n, size_t size, int (*cmp)(const void* keyval, const void* datum));
Searches ordered array base (of n objects each of size size) for item matching key according to comparison function cmp. cmp must return negative value if first argument is less than second, zero if equal and positive if greater. Items of base are assumed to be in ascending order (according to cmp). Returns a pointer to an item matching key, or NULL if none found.
void qsort(void* base, size_t n, size_t size, int (*cmp)(const void*, const void*));
Arranges into ascending order array base (of n objects each of size size) according to comparison function cmp. cmp must return negative value if first argument is less than second, zero if equal and positive if greater.
int rand(void);
Returns pseudo-random number in range 0 to RAND_MAX.
void srand(unsigned int seed);
Uses seed as seed for new sequence of pseudo-random numbers. Initial seed is 1.

[目錄]


<string.h>

NULL
Null pointer constant.
size_t
Type for objects declared to store result of sizeof operator.
char* strcpy(char* s, const char* ct);
Copies ct to s including terminating NUL and returns s.
char* strncpy(char* s, const char* ct, size_t n);
Copies at most n characters of ct to s. Pads with NUL characters if ct is of length less than n. Note that this may leave s without NUL-termination. Return s.
char* strcat(char* s, const char* ct);
Concatenate ct to s and return s.
char* strncat(char* s, const char* ct, size_t n);
Concatenate at most n characters of ct to s. NUL-terminates s and return it.
int strcmp(const char* cs, const char* ct);
Compares cs with ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
int strncmp(const char* cs, const char* ct, size_t n);
Compares at most (the first) n characters of cs and ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
int strcoll(const char* cs, const char* ct);
Compares cs with ct according to locale, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
char* strchr(const char* cs, int c);
Returns pointer to first occurrence of c in cs, or NULL if not found.
char* strrchr(const char* cs, int c);
Returns pointer to last occurrence of c in cs, or NULL if not found.
size_t strspn(const char* cs, const char* ct);
Returns length of prefix of cs which consists of characters which are in ct.
size_t strcspn(const char* cs, const char* ct);
Returns length of prefix of cs which consists of characters which are not in ct.
char* strpbrk(const char* cs, const char* ct);
Returns pointer to first occurrence in cs of any character of ct, or NULL if none is found.
char* strstr(const char* cs, const char* ct);
Returns pointer to first occurrence of ct within cs, or NULL if none is found.
size_t strlen(const char* cs);
Returns length of cs.
char* strerror(int n);
Returns pointer to implementation-defined message string corresponding with error n.
char* strtok(char* s, const char* t);
Searches s for next token delimited by any character from ct. Non-NULL s indicates the first call of a sequence. If a token is found, it is NUL-terminated and returned, otherwise NULL is returned. ct need not be identical for each call in a sequence.
size_t strxfrm(char* s, const char* ct, size_t n);
Stores in s no more than n characters (including terminating NUL) of a string produced from ct according to a locale-specific transformation. Returns length of entire transformed string.
void* memcpy(void* s, const void* ct, size_t n);
Copies n characters from ct to s and returns s. s may be corrupted if objects overlap.
void* memmove(void* s, const void* ct, size_t n);
Copies n characters from ct to s and returns s. s will not be corrupted if objects overlap.
int memcmp(const void* cs, const void* ct, size_t n);
Compares at most (the first) n characters of cs and ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
void* memchr(const void* cs, int c, size_t n);
Returns pointer to first occurrence of c in first n characters of cs, or NULL if not found.
void* memset(void* s, int c, size_t n);
Replaces each of the first n characters of s by c and returns s.

[目錄]


<time.h>

CLOCKS_PER_SEC
The number of clock_t units per second.
NULL
Null pointer constant.
clock_t
An arithmetic type elapsed processor representing time.
time_t
An arithmetic type representing calendar time.
struct tm
Represents the components of calendar time:
int tm_sec;
seconds after the minute
int tm_min;
minutes after the hour
int tm_hour;
hours since midnight
int tm_mday;
day of the month
int tm_mon;
months since January
int tm_year;
years since 1900
int tm_wday;
days since Sunday
int tm_yday;
days since January 1
int tm_isdst;
Daylight Saving Time flag : is positive if DST is in effect, zero if not in effect, negative if information not known.
Implementations may change field order and include additional fields.
clock_t clock(void);
Returns elapsed processor time used by program or -1 if not available.
time_t time(time_t* tp);
Returns current calendar time or -1 if not available. If tp is non-NULL, return value is also assigned to *tp.
double difftime(time_t time2, time_t time1);
Returns the difference in seconds between time2 and time1.
time_t mktime(struct tm* tp);
If necessary, adjusts fields of *tp to fall withing normal ranges. Returns the corresponding calendar time, or -1 if it cannot be represented.
char* asctime(const struct tm* tp);
Returns the given time as a string of the form:
Sun Jan 3 13:08:42 1988\n\0
char* ctime(const time_t* tp);
Returns string equivalent to calendar time tp converted to local time. Equivalent to:
asctime( localtime(tp))
struct tm* gmtime(const time_t* tp);
Returns calendar time *tp converted to Coordinated Universal Time, or NULL if not available.
struct tm* localtime(const time_t* tp);
Returns calendar time *tp converted into local time.
size_t strftime(char* s, size_t smax, const char* fmt, const struct tm* tp);
Formats *tp into s according to fmt. Places no more than smax characters into s, and returns number of characters produced (excluding terminating NUL), or 0 if greater than smax. Formatting conversions (%c) are:
A
name of weekday
a
abbreviated name of weekday
B
name of month
b
abbreviated name of month
c
local date and time representation
d
day of month [01-31]
H
hour (24-hour clock) [00-23]
I
hour (12-hour clock) [01-12]
j
day of year [001-366]
M
minute [00-59]
m
month [01-12]
p
local equivalent of "AM" or "PM"
S
second [00-61]
U
week number of year (Sunday as 1st day of week) [00-53]
W
week number of year (Monday as 1st day of week) [00-53]
w
weekday (Sunday as 0) [0-6]
X
local time representation
x
local date representation
Y
year with century
y
year without century [00-99]
Z
name (if any) of time zone
%
%

Local time may differ from calendar time because of time zone.

[目錄]