首页 > 解决方案 > 尝试阅读 cp.c 的代码但不理解

问题描述

我尝试在 FreeBSD 中读取 cp 命令的代码。

我正在阅读 FreeBSD 的 cp.c。

我不明白下面的代码。

if (to.p_path == to.p_end) {
        *to.p_end++ = '.';
        *to.p_end = 0;
}

这段代码的目的是什么?什么会影响任何情况?

原始源代码在那里。 https://svnweb.freebsd.org/base/release/12.0.0/bin/cp/cp.c?revision=341707&view=markup

标签: cfreebsd

解决方案


基本上,这读作

if o.p_path == "":
   o.p_path = "."

如果我理解正确,它会cp /somepath/somefilecp /somepath/somefile .


推荐阅读