Создать веб-страницу для демонстрации кода 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)