几个错误总结

最近改了个代码。从一开始的一行变成了十几行。版本弄了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

5. !opendir后要closedir

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

不然closedir(dp)会crash。

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

你可能感兴趣的:(几个错误总结)