syntax error: unexpected “(“

syntax error: unexpected “(”

在C语言中通过system()函数创造指定的目录(文件),因为包含特殊字符,导致创建失败。原函数执行的是

system("mkdir -p /disk/logdb/db/@._-()[]|:=/operate");

然后一直报错 syntax error: unexpected “(”。查了好多都是给的命令行应该怎么样处理,没有说在程序中应该怎么处理。在代码中处理也不难其实。
也啰嗦一下,命令行处理,有两种方式:

hostname# mkdir -p "/disk/logdb/db/@._-()[]|:=/operate"
或者
hostname# mkdir -p '/disk/logdb/db/@._-()[]|:=/operate'

能敲命令行说明路径已知,代码中一般都是通过拷贝拼接出来的路径,所以没那么方便直接的修改
但是思路不变

// 在路径上加上单引号即可
snprintf(cmd_line, sizeof(cmd_line), "mkdir -p '%s%s'", "/disk/logdb/db/", file_name);
system(cmd_line);
或者
// 双引号转意
system("mkdir -p \"/disk/logdb/db/@._-()[]|:=/operate\"");

你可能感兴趣的:(linux,c语言)