C言語 システム時刻の差を取得 - time.h - [ difftime ]

2008.11.30 Sunday | by LRESULT


ステム時刻の差を取得するには、difftime()を使います。


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を
基準とした、現在までの経過時間()のことです。


ctime
書式 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
書式 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
書式 clock_t clock( void )
機能 プログラム実行時からの時間を取得
引数 なし
戻り値 プログラム実行時からの経過時間を返します。



clock()に関連する定義
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で確認)


memmove
書式 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()を使います。


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()を使います。

結構メジャーな関数で、なにかと使うことになると思います。
コピーするサイズは気をつけないと、メモリ破壊を起こすので注意が必要です。


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()のバッファ版といったところです。
つまり、文字列の比較ではなく、データの比較というわけです。


memcmp
書式 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」があっても無視して
バッファ内を検索する辺りに違いがあります。
特に、検索対象が文字列である必要はありません。


memchr
書式 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()を使用します。

エラー番号については、こちら


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で確認しています。



| 1/5PAGES | >>