以下3つのプログラムはWinのものですが、適当な例が思い付かなかっただけ
なのでスレ違いとか言わないで下さい。
で、どのプログラムが行儀が良いですか?
どれが一般的ですか?

パターンA
void getpath_a(char * path){
char p[MAX_PATH];
GetPrivateProfileString("section","key","",p,sizeof(p),INIPATH);
lstrcpy(path,p);
}

パターンB
void getpath_b(char * path,size_t size){
GetPrivateProfileString("section","key","",path,size,INIPATH);
}

パターンC
void getpath_c(char * path){
GetPrivateProfileString("section","key","",path,MAX_PATH,INIPATH);
}

私的にはAパターンを今まで採用してきましたが。