問題タブ [xs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - XS サブルーチンが const char * を使用するのはなぜですか?
多くの Perl XS コードはconst char *
XS サブルーチンの戻り値として使用しますが、 char *
. 例えば:
xs-fun のコード
誰かがなぜconst
好ましいのか説明できますか? 私のテストでは、返されたスカラーは、const
使用されているかどうかにかかわらず変更可能です。
c - Perl XS: メモリ管理
Perl XS はまったくの初心者です。
私の単純なテスト関数は文字列を取得し、何かを追加します。Perl では、in と one out はスカラー文字列です。
関数にはmallocがあります。メモリを解放する正しい方法は何ですか?
ありがとう!クリス
c - XS: 外部ライブラリの関数に Perl XS コールバックを渡す
免責事項: perlmonksに問い合わせてください。
私の問題を適切に説明し、描写していることを願っています... XS では、コールバックに Perl 固有の関数がある外部ライブラリの関数にコールバックを送信しようとしています。XSUB は、外部 C 関数への関数ポインタとして渡されます。送信された XSUB コールバックは、次に「メイン」perl アプリケーションのサブにコールバックします。
このセグメンテーション違反。外部ライブラリが呼び出されている perl 関数を理解していないためだと思います。ただし、C の `callback()` 関数を直接呼び出すと問題なく動作します。
外部ライブラリが Perl C 関数を「見る」ようにするためにできる魔法はありますか、それとも何か間違っていますか?
私がテストしているコードは次のとおりです。
出力:
コールバック内から perl 固有の C 呼び出しを削除し、「printf()」またはその他の純粋な C 作業を実行すると、セグメンテーション違反なしで処理が続行されます。
c - Perl XS の OpenSSL とスレッド
Perl-XS-Module 内で OpenSSL を使用しています。OpenSSL-API 関数を呼び出す C 関数があります。テスト目的では非常に簡単です (openssl の初期化、キーの読み取り、RSA オブジェクトの作成と使用、引数なし)。大きなチェックは不要で、アドレスとメモリは問題ありません。
XS は標準の h2xs で-lssl
、 と-lcrypto
がありMakefile
ます。
純粋な C/C++ を実行すれば、それは機能します。XS-Module に入れておき、スレッド外の Perl で使用しても問題ありません。しかし、Perl とスレッド内にあるとクラッシュします。
これは、 thread-handlingがないためだと思います。しかし、他の Perl モジュール (Crypt::OpenSSL::RSA など) を調べてみると、特別なスレッド処理も見つかりません。
私は XS にかなり慣れていないので、何か見落としているかもしれません。多分誰かが私にヒントを与えることができます、ありがとう!
perl - 各行にcsv_xs perlで一致するヘッダーが定義されているすべての列があるかどうかを確認する方法
「||」のような値がない場合でも、csv ファイルの各行にすべての列がヘッダーごとに定義されているかどうかを確認する必要があります。どこで '|' セパレータです。例:
EmpId|EmpName|EmpSalary|EmpDept -> ヘッダー
001|AAA|100|部門1
002|BBB||Dept2 --> 給与に値がなくても、この行は有効です
003|AAA|Dept1 ---> この行は無効です。
データ操作を簡単にするために CSV_XS (ファイルを arrayOfHashes に読み込む) を使用しているため、ファイルがハッシュの配列に読み込まれた CSV_XS を使用して上記のシナリオを確認するにはどうすればよいですか。ありがとう - クマール