【问题标题】:Running a C program on linux server在 linux 服务器上运行 C 程序
【发布时间】:2014-11-16 05:25:39
【问题描述】:

大家好,我是服务器方面的新手,如果我在下面遇到任何错误,请纠正我。

我最近设置了一个 linux 服务器,供用户上传他们自己的文件。用户可以通过专用网页访问服务器,登录、上传和恢复服务器上的任何文件。该网页包含简单的html、css和php脚本。

同时我得到了一个可以帮助压缩文件大小的 C 程序。该程序还不是可执行文件,而是一堆 .c 和 .h 文件。我试图在Linux中制作所有文件并将C程序实现到服务器,并希望在将用户上传的文件存储到服务器之前自动压缩它。

但是我不知道如何在网页中调用 C 程序....感谢任何建议和指导,谢谢!

【问题讨论】:

  • 我不确定.. 但你需要的是从网页执行 C 程序..
  • 如果您需要从 HTML 执行“C”代码。如果是这样,那么您可以使用 PHP 来执行此操作,它有 exec function,使用它您可以调用 gcc 来运行您的 C 代码
  • 如果您想压缩用户上传的文件,您可以使用gzipzip。大多数 Linux 发行版至少有 gzip。请注意,允许用户将任何内容上传到您的服务器并对其进行编译,某些人会将其视为破解​​您的服务器并将其转换为他们的服务器的邀请。
  • 我现在正在使用 exec 函数来实现我的目标,之后会尝试改进安全度量,谢谢!

标签: php c linux shell


【解决方案1】:

如果你使用 php,那么我会推荐 shell_exec 函数,

shell_exec('gcc yourfile.c -o someobjectfile');

output=shell_exec('./someobjectfile');

echo "<pre>$output</pre>";

【讨论】:

  • 有几件事:首先,这将一遍又一遍地编译文件,第一次之后可能不需要;此外,如果允许用户上传正在编译的内容,这可能是一个巨大的安全漏洞。也不是你的错,只是让下一位读者考虑一下。
  • 我知道@Paul,但根据他的要求,这是我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多