问题标签 [getcwd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
109 浏览

python - 为什么'C:'不是我认为的意思?

在 Windows 7 上,我启动了我的 IDLE Python 2.7.5 Shell:

发生了什么事,为什么必须这么复杂?

0 投票
2 回答
384 浏览

perl - cwd 和 gwtcwd 在 windows 上返回一个 linux 风格的路径

如果我运行这个脚本:

输出是:

如何获得 windows 风格的路径C:\tmp

0 投票
1 回答
2516 浏览

c - C 中的 Unix Shell - 更改目录

我是另一个使用简单 Shell 的 CS 初学者。目前,如果传递了参数,我正在尝试更改当前目录,否则,报告到当前目录。

我尝试chdir()在我的程序中使用,但它显然不起作用。我尝试传递一个char*标记化的参数。我也尝试过argv[1],但我一定做错了什么,因为似乎两者都不起作用。

另外,我不完全确定如何使参数指针(包含目录字符串)静态,以便当我使用 putenv(ARGUMENT HERE) 时没有问题。

这是我的代码的相关部分:

指针 argmnts 指向标记化参数部分来自:char strnBuffer[1000]已经为命令标记化:command[0] = strtok(strnBuffer, " ");

我非常感谢任何帮助/见解。

谢谢你。

0 投票
3 回答
93 浏览

c - 获取当前目录的名称(不是路径)

我已经看到了,并且我曾多次使用该函数cwd()来获取文件夹的绝对路径,但是有一个问题,那就是是否可以使用 C 来获取文件夹的名称

例如,假设我在这个文件夹上执行了一个程序:

如果我不为我的程序提供任何参数,我将使用cwd()并且肯定会获得该文件夹的绝对路径。

但我想要的只是实际文件夹的名称,在这种情况下包括. 这可以在 C 中完成吗(我在 Python 和 C# 中见过)?

0 投票
2 回答
8723 浏览

python - 通过符号链接启动 python 脚本

我有一个存在于“脚本”目录中的可执行 python 脚本,并且在根目录中有一个指向该脚本(用于启动文件)的符号链接。就像是:

我希望能够通过以下方式启动/运行我的脚本:

从根目录。i_build.py 脚本将尝试打开 i_Props.ini 并根据其中的内容做一些魔术。

问题是当 i_build.py 脚本通过根目录中的符号链接启动时,i_build.py 脚本将在根目录中查找其他文件(而不是存储 i_build.py 的 /scripts 目录)。

i_build.py 文件的 props 文件位置为:

并尝试打开它,然后失败。出于明显的原因,我不想硬编码路径。

在主文件中添加的快速测试os.getcwd()证实了我的怀疑,即它认为 CWD 是根目录,并且检查__file__表明它是符号链接(“build_i”)。

我可以做些什么来让 python 使用符号的目的地,比如__file__名称和 CWD?

0 投票
4 回答
765 浏览

c - 正确使用 malloc

我正在尝试将我的目录路径名放在一个字符串变量上,如下所示:

我打印了一个空白,但是当我做这样的事情时

它打印正确,为什么?我的第一个 malloc 不是应该让我的变量像 dir[512]

0 投票
2 回答
570 浏览

pwd - 为什么 iget() 隐藏在 xv6 中

我正在玩xv6,这是 Unix 版本 6 的现代实现。

对于我的第一次 hack,我想实现简单的getcwd系统调用,但是对于我应该使用哪个抽象级别有点迷茫。

  • 我应该使用struct file界面吗?
  • 或者也许是struct inode界面?
  • 重要的是,它似乎甚至可以纯粹在用户空间中实现。

我开始通过struct inode操作来实现它。我天真的想法是检索proc->cwd,然后是readi()它的第二个条目 ( ..),扫描它以检索我以前inum的 ,依此类推,直到我找到根。

看起来性能不是很好,但这适合第一次破解。

不过我的问题是我需要从sfs.c:iget()中检索到 s 中的 a 。我注意到这是静态的,没有声明,这让我有点恼火,但我找不到原因。struct inodeinumdirentiget()fs.cdefs.h

所以,这是我的问题。为什么它iget()被故意隐藏在内核的其余部分之外?

0 投票
3 回答
272 浏览

c - getcwd() 的 GNU C 实现的性能

根据关于 getcwd() 的 GNU Lib C 文档...

此函数的 GNU C 库版本还允许您为缓冲区参数指定空指针。然后 getcwd 自动分配一个缓冲区,与 malloc 一样(请参阅无约束分配)。如果大小大于零,那么缓冲区就是那么大;否则,缓冲区将与保存结果所需的一样大。

我现在提请您注意使用 GNU 文档中描述的标准 getcwd() 的实现:

这对于可移植性和稳定性来说似乎很好,但它也看起来像是对所有分配和释放内存的笨拙妥协。鉴于可能会频繁调用该函数,这是否可能是性能问题?

*说“profile it”很容易,但这并不能说明所有可能的系统;现在或未来。

0 投票
1 回答
3300 浏览

working-directory - Perl Cwd::cwd 和 Cwd::getcwd 函数有何不同?

问题

通常,不考虑任何特定平台,PerlCwd::cwd和in之间有什么区别?Cwd::getcwd为什么 Perl 两者都有?预期用途是什么,我应该在哪些场景中使用哪一个?(示例用例将不胜感激。)这有关系吗?(假设我不混合它们。)任何一个的选择是否会以任何方式影响便携性?哪一个在模块中更常用?

即使我解释手册是说除了极端情况cwd`pwd`并且getcwd只是调用getcwdfrom unistd.h,实际区别是什么?无论如何,这只适用于 POSIX 系统。

我总是可以阅读实现,但这并没有告诉我这些函数的含义。实现细节可能会改变,没有那么定义的意思。(否则会发生重大变化,这是一件严肃的事情。)

说明书是怎么说的

引用 Perl 的Cwd 模块手册页

这些函数中的每一个都在没有参数的情况下调用,并返回当前工作目录的绝对路径。

  • 获取cwd

    my $cwd = getcwd();

    返回当前工作目录。

    公开 POSIX 函数 getcwd(3) 或在它不可用时重新实现它。

  • cwd

    my $cwd = cwd();

    cwd() 是当前架构最自然的形式。对于大多数系统,它与 `pwd` 相同(但没有尾随行终止符)。

在注释部分:

  • 实际上,在 Mac OS 上getcwd()fastgetcwd()fastcwd()函数都是函数的别名cwd(),在 Mac OS 上,函数称为 `pwd`。同样,该abs_path()函数是fast_abs_path()

好的,我知道在 Mac OS 1上 和 之间没有区别getcwd()cwd()因为两者实际上都归结为`pwd`. 但是在其他平台上呢?(我对 Debian Linux 特别感兴趣。


1经典 Mac OS,而不是 OS X。$^O值分别是 Mac OSMacOSdarwinOS X。谢谢@tobyink@ikegami

还有一个小问题:如何避免对其他功能非常相似的模块提出类似的问题?除了挖掘实现之外,是否有一种发现差异的通用方法?(目前,我认为如果文档不清楚预期用途和差异,我必须请教更有经验的人或自己阅读实现。

0 投票
0 回答
529 浏览

c++ - iOS getcwd 替代品

我正在将我的 C++ OpenGL 应用程序移植到 iOS,它使用 getcwd 函数来加载着色器。在 iOS 中,'getcwd' 只返回一个斜杠,我无能为力。或者有什么好的方法可以在 iOS 上加载文件?

编辑:找到解决方案!基于 POSIX 的代码。