我琢磨了一会该怎么命名文件 IO 上相关的对象,想好后,御用文件 IO 命名规范如下:
file 指被 任意现代常规文件 IO 函数 (比如C的 fopen() , C++ 的 ifstream() 和 Python 的 open() 等)打开的文件对象名,被打开的文件可以是文本文件或二进制文件。 fd 指被 POSIX 底层文件 IO(比如C的 open() 和 Python 的 os.open() 等)打开的文件描述符对象名;举一反三,可以用 image 命名 OpenCV 的 cv::imread() 打开的 cv::Mat 对象,可以用 dir 命名 POSIX 的 opendir 打开的 DIR * 变量,可以用 socket_fd 命名 POSIX 的 socket() 打开的 socket 描述符等。 尽量别用缩写 。 filename 指 只包含文件名、不含任何路径(包括相对路径) 的字符串对象名。 pathname 指包含 绝对路径 的文件名的字符串对象名。 file , fd , img , dir , socket_fd , filename , 和 pathname 等 均加前缀 ,以进一步区分,比如 image_filename , samples_pathname 等;不过,若 只是个在函数内用的临时变量,也可以不用加 ,方便; 也可以再加 s 后缀 ,以表明它在 Python 中可能是对应的 list , 在 C++ 中则可能是对应的 std::vector 容器等。 filename 还是 pathname ,如果 字符串值 中的文件是目录,一定要加 / 后缀;否则,就加文件格式后缀。 pathname 字符串对象;反之,可以用 filename 字符串对象,必要时再追加表示相对路径或绝对路径的字符串对象。 Written with StackEdit .