我琢磨了一会该怎么命名文件 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 .