Могу ли я передать массив из perl в c без извинения чего-либо в hdd? Я мог бы сгенерировать массив в perl, сохранить его в файле и прочитать в c. Но возможно ли выполнить эту операцию только в памяти?Передача массива из perl в c
ответ
Вы можете использовать API Perl для разговора между Perl-кодом и C, и это может произойти в памяти (не выписывая промежуточные формы на диск).
Подробная информация о различных вызовах для обработки массивов доступна с perl.org.
Помните, что содержимое массива Perl представляет собой скалярные значения Perl (SVs), а не только ints или указатели, как в массиве C, поэтому вам придется использовать Perl API для декодирования данных до чего-то, что вы можете в вашей программе C.
Это не похоже на вопрос о Perl или C вообще, а вопрос о том, как передавать информацию из одной программы в другую («Я бы предпочел иметь внешний двоичный файл»). Это называется inter- (IPC).
Если программа Perl запускает программу C, вы можете передать данные, используя список аргументов.
Если программа C запускает программу Perl, вы создаете канал и привязываете его к STDOUT ребенка. Программа Perl будет печатать данные в STDOUT, а программа C будет читать ее из канала.
Если ни одна из двух программ не запускает другую, сокет является очевидным решением, хотя есть много других возможностей.
- 1. Perl - передача массива подпрограмме
- 2. Передача массива в подпрограмму Perl
- 3. Передача массива строк из C++ в C#
- 4. Передача массива структуры из C# в C++
- 5. Передача 2D-массива из C# в C++
- 6. Передача массива массива в подпрограмму с использованием perl
- 7. Передача массива в процедуру Oracle из C#
- 8. Передача массива из javascript в C#
- 9. Передача ассоциативного массива из C# в Powershell
- 10. Передача массива 2d из Fortran в C
- 11. Передача массива из fortran в функцию C++
- 12. Передача двухмерного массива из Fortran в C
- 13. Передача массива строк из powershell в C#
- 14. Передача двумерного массива в подпрограмму Perl
- 15. Передача 2D-массива из одного скрипта Perl в другой
- 16. Perl Передача одного из массива в «Массив массивов» на подпрограмму
- 17. Передача массива из Perl в PHP с использованием JSON-RPC
- 18. Выделение массива из массива массивов в perl
- 19. C - Передача массива методу
- 20. Передача массива функции в C++
- 21. Передача двухмерного массива в C
- 22. Передача массива строк из C# для яваскрипта
- 23. C++ - Передача массива из функции к функции
- 24. Передача массива символов в c
- 25. C++ Передача массива в функцию
- 26. Передача изменчивого массива в C++
- 27. Передача массива в функции C
- 28. Передача массива методу в C#
- 29. Передача 2D-массива в C
- 30. Передача вспомогательного массива как массива в C#
Да. Вам нужно изучить «XS», взглянуть на perlxstut: http://perldoc.perl.org/perlxstut.html - альтернативно вы можете передавать данные через отдельный процесс, например, «memcached» - при условии, что вы были счастливы расширить свою C, чтобы добавить необходимую обработку клиента и формата (в Perl это проще) –
, поэтому у вас есть внешний скомпилированный двоичный файл или вы хотите использовать 'C' внутри' perl'? –
Я бы предпочел иметь внешний двоичный файл. Но я мог бы также использовать c внутри perl, если бы это была единственная возможность. – MaMu