realpath函数使用注意事项
必须使用PATH_MAX大小的内存空间,否则是非常不安全,在某些设备上经过验证,哪怕是PATH_MAX-1都会崩溃。正如使用如下: char file_path[PATH_MAX]; memset(file_path, 0, sizeof(file_path)); realpath("/proc/self/exe", file_path); 函数 严重性 解决方案 gets 最危险 使用 fgets(buf, size, stdin)。这几乎总是一个大问题! strcpy 很危险 改为使用 strncpy。 strcat 很危险 改为使用 strncat。 sprintf 很危险 改为使用 snprintf,或者使用精度说明符。 scanf 很危险 使用精度说明符,或自己进行解析。 sscanf 很危险 使用精度说明符,或自己进行解析。 fscanf 很危险 使用精度说明符,或自己进行解析。 vfscanf 很危险 使用精度说明符,或自己进行解析。 vsprintf 很危险 改为使用 vsnprintf,或者使用精度说明符。 vscanf 很危险 使用精度说明符,或自己进行解析。 vsscanf 很危险 使用精度说明符,或自己进行解析。 streadd 很危险 确保分配的目的地参数大小是源参数大小的四倍。 strecpy 很危险 确保分配的目的地参数大小是源参数大小的四倍。