Как захватить вывод C printf с использованием типов Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как захватить вывод C printf с использованием типов Python?

Сообщение Anonymous »

Я написал фрагмент кода на C, который печатает значения связанного списка одно за другим с помощью printf. Вот упрощенная версия функции C:

Код: Выделить всё

#include 

void print_linked_list(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%d\n", current->data);
current = current->next;
}
}
Я скомпилировал этот код C в DLL, а затем использовал ctypes Python для вызова функции. Однако функция C не возвращает никаких значений — она только печатает значения связанного списка с помощью printf. Вот как я пытался вызвать его из Python:

Код: Выделить всё

from ctypes import CDLL, POINTER, Structure, c_int

class Node(Structure):
_fields_ = [("data", c_int), ("next", POINTER(Node))]

dll = CDLL('./my_library.dll')
dll.print_linked_list.argtypes = [POINTER(Node)]

# Assuming I have a linked list instance
dll.print_linked_list(linked_list_head)
Когда я запускаю этот код, значения выводятся на стандартный вывод. Однако я хочу сохранить эти значения в Python для дальнейшей обработки.
Как я могу перенаправить или захватить вывод printf из функции C, чтобы можно было использовать напечатанные значения в Python?< /p>
Я читал об использовании os.dup2 для перенаправления стандартного вывода, но не смог понять, как его применить в этом контексте. Есть ли более простой способ добиться этого с помощью ctypes?
Будем благодарны за любые рекомендации или примеры!

Подробнее здесь: https://stackoverflow.com/questions/793 ... hon-ctypes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как захватить вывод C printf с использованием типов Python?
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как захватить вывод C printf с использованием типов Python?
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Подсказки типов и проверка типов для пользовательских типов IntEnum
    Anonymous » » в форуме Python
    0 Ответы
    71 Просмотры
    Последнее сообщение Anonymous
  • Подсказки типов и проверка типов для пользовательских типов IntEnum
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Подсказки типов и проверка типов для пользовательских типов IntEnum
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»