字符拼接数字
在多进程环境中,防止多线程读写同一个文件,所以往往会加pid来分别写不同文件,防止错乱
然后sprintf一般在项目中会宏定义成不要使用
#define sprintf __ERROR__XX__NEVER_USE_SPRINTF__;
所以最佳方法就是用snprintf
char *tmp_file_path = "some path";
int INT_MAX_LEN = 10;
int SPLIT_CHAR_LEN = 1;
int pid = getpid();
int file_path_max_len = strlen(tmp_file_path) + INT_MAX_LEN + \
SPLIT_CHAR_LEN + 1;
char file_path[file_path_max_len];
// 返回写入的长度,最长file_path_max_len,超过会被截断
ret = snprintf(file_path, file_path_max_len, "%s-%d", tmp_file_path, pid);
if (ret >= file_path_max_len) {
printf("The file name string was truncated");
}