在c++标准库函数中,没有直接判断文件存不存在的函数。而为了这一个小小的功能要实现操作系统代码分开很是划不来。
在偶然的机会中,发现了一个很简单的好方法可以实现这个功能。只利用标准库函数而不用写操作系统相关代码。
在c++标准库中,有一个文件操作函数,rename用于文件改名,其位于cstdio中。rename接受new,old两个char*参数,返回改名操作结果。我们可以利用改名功能,将其两个参数都设置成要判断的文件名,而返回值可能会是我们需要的结果。
rename返回0表示正常,返回非0表示有错误。而这样实现的exist函数,同样,返回0表示存在,非0表示不存在。还可以根据需要,将0所对应结果反过来。
最后的实现就是return !rename(filename, filename)。
在偶然的机会中,发现了一个很简单的好方法可以实现这个功能。只利用标准库函数而不用写操作系统相关代码。
在c++标准库中,有一个文件操作函数,rename用于文件改名,其位于cstdio中。rename接受new,old两个char*参数,返回改名操作结果。我们可以利用改名功能,将其两个参数都设置成要判断的文件名,而返回值可能会是我们需要的结果。
rename返回0表示正常,返回非0表示有错误。而这样实现的exist函数,同样,返回0表示存在,非0表示不存在。还可以根据需要,将0所对应结果反过来。
最后的实现就是return !rename(filename, filename)。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=916628
没有评论:
发表评论