C言語 システム時刻の差を取得 - time.h - [ difftime ]
2008.11.30 Sunday | by LRESULT
システム時刻の差を取得するには、difftime()を使います。
書式 | double difftime( time_t t1, time_t t2 ) |
---|---|
機能 | システム時刻の差を取得 |
引数 | time_t t1 : 差を求める時刻 time_t t2 : 差を求める時刻 |
戻り値 | t1 - t2 の時刻をdouble型で返します。 |
C言語 システム時刻を日時の文字列に変換 - time.h - [ ctime ]
2008.11.29 Saturday | by LRESULT
システム時刻を日時の文字列に変換するには、ctime()を使います。
システム時刻とは、一般的にグリニッジ標準時の1970年1月1日00:00:00を
基準とした、現在までの経過時間(秒)のことです。
書式 | char* ctime( const time_t *timer ) |
---|---|
機能 | システム時刻を日時の文字列に変換 |
引数 | const time_t *timer : time()で取得したシステム時刻 |
戻り値 | 日本時間の日時に変換した文字列を返します。 |
※ 変換された文字列には、「¥n」「¥0」が追加されます。
※ 現在の地域の時間に合わせて変換されます。
C言語 システム時刻の取得 - time.h - [ time ]
2008.11.28 Friday | by LRESULT
システム時刻を取得するには、time()を使います。
この、システム時刻とは、一般的にグリニッジ標準時の1970年1月1日00:00:00を
基準とした、現在までの経過時間(秒)のことです。
書式 | time_t time( time_t *timer ) |
---|---|
機能 | システム時刻の取得 |
引数 | time_t *timer : システム時刻(秒)を格納 |
戻り値 | 成功すると、システム時刻を返し、 失敗すると、-1を返します。 また、引数(timer)にNULLを指定すると、システム時刻を返します。 |
※ time_t型は、一般的にlong型でtypedefされており、時刻を表す型です。
※ t = time( NULL );と、time( &t ); の結果(t)は同じです。
C言語 プログラム実行時からの時間を取得 - time.h - [ clock ]
2008.11.27 Thursday | by LRESULT
プログラム実行時からの時間を取得するには、clock()を使います。
書式 | clock_t clock( void ) |
---|---|
機能 | プログラム実行時からの時間を取得 |
引数 | なし |
戻り値 | プログラム実行時からの経過時間を返します。 |
clock_t | clock()の戻り値に使われる経過時間を格納します。 通常、long型をtypedefしています。 |
---|---|
CLOCKS_PER_SEC | clock()での戻り値の単位がtime.hで定義されています。 1000の場合は、ミリ秒となります。 |
C言語 バッファのコピー(移動) - string.h - [ memmove ]
2008.11.26 Wednesday | by LRESULT
バッファのコピー(移動)をするには、memmove()を使います。
memcpy()と、ほぼ同じ機能ですが、メモリ領域が重なっている場合でも
正しくコピーされるという点が異なります。
※ ただし環境によっては、メモリ領域が重なっても
memcpy()で問題なく動く場合があるようです。(VC8で確認)
書式 | void* memmove( void *s1, const void *s2, size_t n ) |
---|---|
機能 | バッファのコピー(移動) |
引数 | void *s1 : コピー先となるバッファ const void *s2 : コピー元となるバッファ size_t n : コピーするバイト数 |
戻り値 | コピー先バッファ(s1)を返します。 |
※ バッファサイズを超えるような、バイト数(n)を指定すると
メモリ破壊を起こすので注意が必要です。
C言語 バッファを指定した値で設定 - string.h - [ memset ]
2008.11.25 Tuesday | by LRESULT
バッファを指定した値で設定(初期化)するには、memset()を使います。
書式 | void* memset( void *s, int c, size_t n ) |
---|---|
機能 | バッファを指定した値で設定 |
引数 | void *s : 設定対象のバッファ int c : 設定する値 size_t n : 設定バイト数 |
戻り値 | 設定対象のバッファ(s)を返します。 |
※ バッファサイズを超えるような、バイト数(n)を指定すると
メモリ破壊を起こすので注意が必要です。
※ memset()は、構造体や配列の初期化に使われることが多いです。
C言語 バッファのコピー - string.h - [ memcpy ]
2008.11.24 Monday | by LRESULT
バッファのコピーをするには、memcpy()を使います。
結構メジャーな関数で、なにかと使うことになると思います。
コピーするサイズは気をつけないと、メモリ破壊を起こすので注意が必要です。
書式 | void* memcpy( void *s1, const void *s2, size_t n ) |
---|---|
機能 | バッファのコピー |
引数 | void *s1 : コピー先となるバッファ const void *s2 : コピー元となるバッファ size_t n : コピーするバイト数 |
戻り値 | コピー先バッファ(s1)を返します。 |
※ strncpy()と似てますが、「¥0」は追加されません。
C言語 バッファ同士のデータを比較 - string.h - [ memcmp ]
2008.11.23 Sunday | by LRESULT
バッファ同士のデータを比較するには、memcmp()を使います。
strncmp()のバッファ版といったところです。
つまり、文字列の比較ではなく、データの比較というわけです。
書式 | int memcmp( const void *s1, const void *s2, size_t n ) |
---|---|
機能 | バッファ同士のデータを比較 |
引数 | const void *s1 : 比較するバッファ const void *s2 : 比較するバッファ size_t n : 比較するバイト数 |
戻り値 | s1 < s2 : 負の値 s1 = s2 : 0 s1 > s2 : 正の値 |
※ 大小関係はデータのバイナリ値から判定しているようです。
C言語 バッファ内のデータを検索 - string.h - [ memchr ]
2008.11.22 Saturday | by LRESULT
バッファ内のデータを検索するには、memchr()を使います。
strchr()に似てますが、バッファとして扱う為、「¥0」があっても無視して
バッファ内を検索する辺りに違いがあります。
特に、検索対象が文字列である必要はありません。
書式 | void* memchr( const void *s, int c, size_t n ) |
---|---|
機能 | バッファ内のデータを検索 |
引数 | const void *s : 検索対象となるバッファ int c : 検索するデータ size_t n : 検索バイト数 |
戻り値 | 検索データ(c)を最初に発見した位置のポインタを返し、 発見出来なかったときは、NULLを返します。 |
C言語 エラー番号に応じた文字列の取得 - string.h - [ strerror ]
2008.11.21 Friday | by LRESULT
エラー番号に応じた文字列を取得するには、strerror()を使用します。
※ エラー番号については、こちら。
書式 | char* strerror( int errnum ) |
---|---|
機能 | エラー番号に応じた文字列の取得 |
引数 | int errnum : エラー番号 |
戻り値 | エラー番号に応じた文字列のポインタを返します。 |
00 | No error |
---|---|
01 | Operation not permitted |
02 | No such file or directory |
03 | No such process |
04 | Interrupted function call |
05 | Input/output error |
06 | No such device or address |
07 | Arg list too long |
08 | Exec format error |
09 | Bad file descriptor |
10 | No child processes |
11 | Resource temporarily unavailable |
12 | Not enough space |
13 | Permission denied |
14 | Bad address |
15 | Unknown error |
16 | Resource device |
17 | File exists |
18 | Improper link |
19 | No such device |
20 | Not a directory |
21 | Is a directory |
22 | Invalid argument |
23 | Too many open files in system |
24 | Too many open files |
25 | Inappropriate I/O control operation |
26 | Unknown error |
27 | File too large |
28 | No space left on device |
29 | Invalid seek |
30 | Read-only file system |
31 | Too many links |
32 | Broken pipe |
33 | Domain error |
34 | Result too large |
35 | Unknown error |
36 | Resource deadlock avoided |
37 | Unknown error |
38 | Filename too long |
39 | No locks available |
40 | Function not implemented |
41 | Directory not empty |
42 | Illegal byte sequence |
43 | Unknown error |
44 | Unknown error |
45 | Unknown error |
46 | Unknown error |
47 | Unknown error |
48 | Unknown error |
49 | Unknown error |
※ VC8で確認しています。