一、在多线程同时调用同一个函数,而该函数修改全局变量。
问题:我传了字符串进入check_path(),但是到了里面就为空""了,也有乱码的情况。
// FIXME: 会有创建失败的情况,发现后我命令行创建是没有问题的,不明原因。
// 后来发现有时候有乱码问题:
// path: “�.” 不存在!
// mkdir -p �.
// path: “�;|�}” 不存在!
// sh: 1: Syntax error: “|” unexpected
// “mkdir -p �;|�}” faild. system result:512
// 有时候有空字符问题:
// path: “” 不存在!
// mkdir: missing operand
// Try ‘mkdir --help’ for more information.
// "mkdir -p " faild. system result:256
代码:
// 判断路径是否存在并且是否有权限
bool check_path(const char* value) {
lock_guard<mutex> lock(mut_cp);
bool ret = true;
if (access(value, F_OK) == -1) {
printf("path: \"%s\" 不存在!\n", value);
char mkdir_command[64];
// FIXME: 会有创建失败的情况,发现后我命令行创建是没有问题的,不明原因。
// 后来发现有时候有乱码问题:
// path: "�." 不存在!
// mkdir -p �.
// path: "�;|�}" 不存在!
//