相对路径中dotdot与dot的区别

. means “current directory” and .. means “parent directory”.
For example, if your directory is C:\Users\Bob, . refers to C:\Users\Bob and .. refers to C:\Users.
You will find that this is universal in programming and computers in general.

C语言检查当前的current directory是什么:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
char* _getcwd( char *buffer, int maxlen );  
// 功 能 : 获得当前工作目录.
// 头文件 : #include <direct.h>
// 返回值 : 成功返回指向buffer的pointer
// 失败返回NULL,且设置errno为以下三个值之一:
// ENODEV 无该设备
// ENOMEM 内存不够
// ERANGE 结果超出范围
// 注 意 : 当第一个参数为 NULL 时, 第二个参数 maxlen 长度设置无效,且函数
// 使用 malloc 分配足够内存, 需要将函数返回值传递给 free() 函数来
// 释放内存. 当第一个参数不为 NULL 时,maxlen 指定长度不够函数返回
// 错,设置errno为ERANGE

//实例
#include <stdio.h>
#include <direct.h>
#define MAXPATH 1024
int main()
{
char buffer[MAXPATH];
_getcwd(buffer,MAXPATH);
printf("%s",buffer);
return 0;
}

Visual Studio 2019与2017的当前目录判定似乎有些不一样,2019版会将工程目录认为是当前目录,2017版则不一样。总之,开始编码前进行确认是必要的。

参考资料

  1. What does dot and dotdot means
  2. C语言获取当前工作路径