【问题标题】:how to run a c code from a usb pendrive?如何从 USB pendrive 运行 c 代码?
【发布时间】:2015-02-05 07:41:51
【问题描述】:

我不得不在多台计算机上运行我编写的少量代码,一旦完成(完成编译和运行),这些代码就不会出现在这些计算机上。
以前我可以用python编写的代码来完成这个。通过将 python 代码放在笔式驱动器中并直接从笔式驱动器本身运行它们。

说,我有一个 python 代码放在我的笔式驱动器中(5A30-C211)。

/media/5A30-C211$ python sample_code.py

我能够得到输出(/media/5A30-C211 是我的笔式驱动器)。但我现在有一些 c 代码。当我对 c 代码做同样的事情时。

/media/5A30-C211$ gcc sample_code.c -o sample_code
/media/5A30-C211$ ./sample_code
bash: ./sample_code: Permission denied

当我看到Permission denied 这个词时,我在编译和运行命令中添加了sudo。我得到的输出为command not found

问题是: 有什么方法可以让我在不使用sudo 的情况下从 USB 闪存棒/笔式驱动器运行 c 代码,就像我在 python 中所做的那样?

【问题讨论】:

  • 这个设备上的文件系统是什么?
  • 对不起,你能告诉我怎么找到那个吗?
  • 我使用了blkid 命令。我得到的是"vfat"
  • 你什么时候收到command not found
  • 当我将sudo 添加到编译中时,它会要求输入密码并执行,.. 当我将sudo 添加到运行语句时,它会显示command not found

标签: python c usb-drive


【解决方案1】:

您的文件需要可执行权限 (chmod +x),但由于您正在运行不支持 posix 权限的 vfat 驱动器,因此 chmod 无法正常工作。

您需要使用适当的权限重新安装驱动器。

mount -t vfat -o umask=022,gid=<users group id>,uid=<user id> \
    /dev/<pendrive device> /mnt/<pendrive mnt point>

【讨论】:

    【解决方案2】:

    要运行已编译的程序,它需要对文件设置可执行权限。这里的问题是您的 pendrive 被格式化为 vfat,这是来自 Windows 世界的 FS。因此它不支持 Unix 权限系统,您不能对文件设置可执行权限。

    您有两种方法可以解决您的问题:

    • 将 pendrive 格式化为 Unix FS,如 ext4。
    • 将您的程序复制到 PC 上的临时文件夹中,为其授予可执行权限 (chmod +x),然后将其删除。

    【讨论】:

      猜你喜欢
      • 2017-03-12
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多