Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数

参考了网上不少博客,说实话,感觉都只写了一半步骤,让人有点摸不着头绪,下面简单写一下我的配置过程,希望对大家有用啦。不喜勿喷!

前言

Mac的Xcode默认是从绝对路径进行搜索,不像VS直接导入文件即可使用相对路径操作,还需要进行设置。(如果不闲写绝对路径麻烦、难迁移工程,直接写绝对路径也可的)

设置步骤

操作步骤 product > scheme > edit scheme->options->workdictionary->use custom working dictionary
Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第1张图片

选中use custom working dictionary, 输入你想开始执行相对路径的路径(图中写错了,难得改了)。
Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第2张图片

第二步:Demo
我的调用关系(仅为方便理解):
demo.cpp(main函数)=> 读取写在testlist.txt (包含了传入参数,读写文件路径 -》指向文件夹:1) => 根据在testlist.txt 文件中的路径对文件夹 1 进行读写操作 ,这是在finder中的文件路径关系:
Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第3张图片

写相对路径代码:
调用路径过程:demo.cpp 中 从testlist.txt读入参数和输入待读入文件的路径。下图是demo.cpp 中的调用代码(我的use custom working dictionary设置的文件路径是到mac。)
Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第4张图片
然后 testlist.txt (用来调用文件夹 1 中的文件)的文件路径是 ./test_vec/1/,其相对路径关系还是从 demo.cpp 开始计算。Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第5张图片
⚠️ 注意:

  1. 在读入 testlist.txt 文件时,注意看你的代码读取格式,我使用别人的读取代码,发现是按空格来读取的,自己不小心在路径前多输入一个空格,调试半天代码!唉~~用打印的路径测试吧!

  2. 这里面涉及到C/C++ 读写文件的路径表示方法:
    Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数_第6张图片
    参考链接:博客园 vrangerv 博主:C\C++编程中:相对路径+绝对路径

  3. 这个工程中,我使用到了字符串拷贝和拼接函数,在 VS 2017中使用的是 strncpy_s()strcat_s()函数,但是在 mac 的 Xcode 中,他们并不受支持,于是我修改成strncpy()strncat() 函数。用法介绍如下:

=> strcat_s
strcat_s脱胎于 strcat ,用于两个字符串的链接,strcat(str1,str2) 直接返回新的str1。但在vs2005后,为了安全起见,重新添加了些功能和api和以前不同。比如 strcat_s
为什么是安全起见呢?对于老的你添加str2的时候如果st1溢出怎么办?很明显这就是需要改进的地方。
所以新的strcat_s规定,有三个参数,必须指定str1的大小使用方法如下:

char string[20]="123";
strcat_s(string,sizeof(string),"456");
printf("%s",string);

=>strncat()
//TODO
网速不好,难得写了。。。。参考菜鸟教程或者其他博客吧:
菜鸟教程: https://www.runoob.com/cprogramming/c-function-strncat.html

参考博客
博客园 Djzny 博主:C++string函数之strcat_s

你可能感兴趣的:(音频研发)