Создать веб-страницу для демонстрации кода C

У меня есть код C, который принимает файл в качестве входных данных, обрабатывает его и дает число в качестве выходных данных. Я хочу построить HTML-страницу, которая принимает путь к файлу в качестве входных данных, передает его на C-код. Код C обрабатывает его и вывод (целое число) отображается в браузере. Можете ли вы предложить мне, как это сделать? Есть ли готовые программы для этого?

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 модуль для вызова функции C из Python, например, для вызова printf() С функция от libc библиотека:

#!/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)
Другие вопросы по тегам