创建一个网页来演示C代码

时间:2014-02-19 09:58:45

标签: html c demo

我有一个C代码,它接受一个文件作为输入,处理它并给出一个数字作为输出。我想构建一个html网页,它将文件路径作为输入,并将其提供给C代码。 C代码处理它,输出(整数)显示在浏览器中。你能建议我怎么做吗?是否有任何预建的软件可以做到这一点?

1 个答案:

答案 0 :(得分:1)

如果使用C代码生成命令行实用程序,则可以在生成网页时调用它:

#!/usr/bin/env python
import subprocess
from bottle import request, route, run, template # http://bottlepy.org/

command = ['wc', '-c'] # <-- XXX put your command here

@route('/')
def index():
    filename = request.query.filename or 'default' # query: /?filename=<filename>
    output = subprocess.check_output(command + [filename]) # run the command
    return template("""<dl>
        <dt>Input</dt>
            <dd>{{filename}}</dd>
        <dt>Output</dt>
            <dd>{{output}}</dd></dl>""", filename=filename, output=output)

run(host='localhost', port=8080)

运行此脚本或将其粘贴到Python控制台,然后打开浏览器并传递文件名(服务器上的路径)作为查询参数:

$ python -mwebbrowser http://localhost:8080/?filename=/etc/passwd

wc -c打印每个输入文件的字节数。它在服务器上执行。


如果C代码可用作库;您可以使用ctypes module从Python调用C函数,例如,从printf()库调用libc C函数:

#!/usr/bin/env python
import ctypes
from ctypes.util import find_library

try:
    libc = ctypes.cdll.msvcrt # Windows
except OSError:
    libc = ctypes.cdll.LoadLibrary(find_library('c'))

n = libc.printf("abc ")
libc.printf("%d", n)