我尝试在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

最佳答案

基本上,这是

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


如果我理解正确,它会使cp /somepath/somefilecp /somepath/somefile .一样工作

09-13 04:30