几个错误总结

最近改了个代码。从一开始的一行变成了十几行。版本弄了9九次。辛苦了一群reviewer。一定要总结一下。

1. Mac的隐藏文件夹“.XXX”

在OS X系统下,.XXX路径是隐藏的。

另外在建立路径名变量的时候最好用dotXXXDirectoryPath。

2. getenv(“HOME”)

getenv() 方法返回环境变量值 NUL-terminated string.

如果该变量不存在,返回NULL.

getenv(“TEMP”)返回的是一个随机产生的临时路径,而不是/tmp

3.error for opendir()

opendir() 可能产生多种错误。路径不存ENOENT在只是其中之一。

DIR* dp = opendir(path);

if(NULL == dp){

  if(ENOENT == errno) mkdir();

  else log(strerror(errno));

}

4. CFStringRef对象会泄漏。要用auto_cfref<CFStringRef>。

5. !opendir后要closedir

但是注意,一定要check NULL != dp

不然closedir(dp)会crash。

6. protected member 在cpp中要继承实现。或者建立对象调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容