为啥安装了open-vm-tools,复制文件到kali上还是不能粘贴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥安装了open-vm-tools,复制文件到kali上还是不能粘贴相关的知识,希望对你有一定的参考价值。

参考技术A 复制粘贴、拖拽、窗口缩放等问题都是因为这个进程没有启动起来,你只需要在启动后在终端输入“/usr/bin/vmware-user”就可以手动启动,启动时可能会提示“**模块找不到”之类的警告,不用管他,然后你就会发现这些功能都有了

为啥该行没有复制到子进程的地址空间中?

【中文标题】为啥该行没有复制到子进程的地址空间中?【英文标题】:Why the line is not copied in the address space of child process?为什么该行没有复制到子进程的地址空间中? 【发布时间】:2013-03-27 11:48:02 【问题描述】:
   #include<stdio.h>---->(1)
    int main()
    
        int i;
        int j,K;
        j = 200;
        K = 300;
        printf("Before forking: j = %d, K = %d\n ", j, K);---->(2)
        i = fork();---->(3) /* Calling fork() */
       if (i > 0)  /* Parent Process */ ----->(4)    
         sleep(10);/* Delay the parent */
         printf("After forking, parent: j = %d, K = %d\n", j, K);
        ----->(5)

      else ----->(6)  /* Child process */
        j++;
        K++;
        printf("After forking, child: j = %d, K = %d\n", j, K);
      ---->(7)

   o/p of the above pgm is 
   Before forking: j = 200, K = 300
   After forking, child: j = 201, K = 301
   After forking, parent: j = 200, K = 300.
&第 (6) 行到第 (7) 行构成子进程,fork() 之上的任何内容,即从第 (1) 行到第 (2) 行无论如何都被复制到子进程的地址空间。我对上述观点是否正确?那为什么line#(2)没有打印两次,一个在子进程,另一个在父进程?

【问题讨论】:

【参考方案1】:

在调用fork() 之后,父母和孩子都继续。在main() 的顶部,孩子不会重新开始。

(如果您希望子进程从头开始,您应该在子进程中使用fork(),后跟exec()。)

【讨论】:

>那么说child得到其父母地址空间的副本是什么意思。第2行在父母地址空间中对吗? @SubiPuthalath:是的,但是那行已经被执行了。孩子fork()之后继续。 >好的,我明白了。所以你的意思是说只有变量的值(可以在堆中或堆栈中)只被复制到子地址空间。 所有内容都会被复制,包括变量的值、代码以及代码中执行到达的点。就您的代码而言,唯一的区别是fork() 的返回值。子代码 (2) 中存在的代码并不意味着该代码会在子代码中执行 - 执行点已经超出了它。 >感谢您的精彩解释【参考方案2】:

子进程继承父进程的上下文并在fork()之后继续执行。通常,exec() 在 child 中的 follow() 之后调用,exec() 覆盖 parent 的上下文,让 child 全新运行。

【讨论】:

>谢谢 Eva 的解释

以上是关于为啥安装了open-vm-tools,复制文件到kali上还是不能粘贴的主要内容,如果未能解决你的问题,请参考以下文章

最新版Kali Linux虚拟机安装Open-vm-tools替代VMware tools

解决open-vm-tools无法复制粘贴文件问题

安装了VMware tools还是不能复制粘贴是怎么回事

debain系统安装open-vm-tools

为啥该行没有复制到子进程的地址空间中?

Linux的一些问题