VC++8.0(VisualStudio2005)以降でC言語の関数を使っていてよく出る警告の例。
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
CRT(Cランタイムライブラリ)のセキュリティ強化版("_s"が付いたやつ)があるからそっち使え、と。
ただ名前だけでなく引数なども変わってたりするので結構面倒。
なので例をまとめていこうかと。

fopen -> fopen_s

FILE* fp;
if((fp = fopen("dst.txt", "w")) == NULL){
    //エラー処理
}
    ↓
FILE* fp;
errno_t error;
if(error = fopen_s(&fp, "dst.txt", "w") != 0){
    //エラー処理
}
引数にファイルポインタ(アドレス演算子付き)。
戻り値がエラーコードを処理するerrno_t型に変わっている。

sscanf -> sscanf_s

char src[] = "5 abcdefg 4";
char dst[ 32 ];
int five, four;
sscanf( src, "%d %s %d", &five, dst, &four);
    ↓
char src[] = "5 abcdefg 4";
char dst[ 32 ];
int five, four;
sscanf_s( src, "%d %s", &five, dst, sizeof(dst), &four);
結果を受け取る側が文字列とかの場合、次の引数としてバッファサイズを指定する。
fscanf -> fscanf_s とか他のscanf系も同様。
戻り値はint型のままなので、多分入力データの個数かと。

strcpy -> strcpy_s

strcpy( dst, src);
    ↓
strcpy_s(dst, _countof(dst), src)
コピー先のバッファサイズが必要。_countofは要素数を取得するマクロ。
strncpy -> strncpy_s とか strcat -> strcat_s とか、 string.hの文字列処理関数はみな同様か。
fopen_sと同様に戻り値がerrno_t型になっているので、エラー処理する場合は注意。

とりあえず新たに遭遇したら随時追加する感じで。
内部処理も変わってたりするらしいですが、テクニカルな扱いをしてなければ平気なはず。
まあ前の関数も使えるんで。警告はうるさいけどね。