問題タブ [asprintf]

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.

0 投票する
4 に答える
3176 参照

c - AIXでのasprintfの代替または回避策

AIXでpython-kerberosをビルドしようとしています。kerberospw.cはasprintfの呼び出しを使用しますが、Googleが私に言っていることから、asprintfはAIXには存在しません。

http://www.koders.com/c/fidAA9B130D588302673A28B568430A83131B7734C0.aspx?s=windows.hを見ましたが、これはスタンドインasprintfを作成できるように見えますが、これがどこに行くのか、どのように行うのかわかりません。 #kerberospw.cに含めます。

koders.comの例または他のコードを使用してasprintfを「偽造」する方法はありますか?kerberospw.cに示されているようにasprintf関数を含めることはできますか?私はCコーダーではありませんが、

asprintf(char ** resultp、const char * format、...)

末尾にドットが付いている私には、有効な署名のようには見えません。kerberospw.cからの関連行は以下のとおりです

asprintf(&message、"%。* s:%。* s"、(int)result_code_string.length、
(char *)result_code_string.data、
(int)result_string.length、
(char *)result_string.data);

python-kerberosの作成者に連絡できることはわかっていますが、a)パッチを適用すると役立つと思います。また、b)asprintfを使用する他のソフトウェアが存在する可能性があります。回避策があると便利です。

0 投票する
2 に答える
66826 参照

c - sprintf() の代わりに asprintf() を使用する理由

asprintf が必要な理由を理解するのに苦労しています。ここのマニュアルにはこう書かれています

関数asprintf()とはと vasprintf()の類似物ですが、終端の null バイトを含む出力を保持するのに十分な大きさの文字列を割り当て、最初の引数を介してその文字列へのポインタを返します。割り当てられたストレージが不要になったときに解放するには、このポインタを に渡す 必要があります。sprintf(3)vsprintf(3)free(3)

だからここに私が理解しようとしている例があります:

バッファが十分な大きさの文字列を割り当てる場合と、char* = (string) と言う場合の違いは何ですか

0 投票する
2 に答える
556 参照

c - `asprintf` はスレッドセーフですか?

GNU 関数asprintf(割り当てられた文字列への出力) はスレッドセーフですか?

(IIC、基本的に、これmallocはスレッドセーフかどうかという問題に要約されます。)

サンプルコードを考えてみましょう:

ここでは、グローバル変数には触れません。getValue並行スレッドで呼び出された場合はどうなりますか? 悪いことは起こりませんよね?

0 投票する
2 に答える
613 参照

c - C で sprintf とシステム関数を使用するとファイルが空になる

ファイルテキストにいくつかの情報を保存したいので、このプログラムを書きました:

結果:

システムコマンドはこれを返します:

しかし、実行すると: cat /tmp/ping_result.I got an empty file

0 投票する
8 に答える
12336 参照

c - Windows で asprintf() を使用する

Linux で完全に動作する C プログラムを作成しましたが、Windows でコンパイルすると、asprintf() が未定義であるというエラーが表示されます。stdio ライブラリの一部である必要がありますが、多くのコンパイラには含まれていないようです。asprintf() 関数を使用できる Windows 用のコンパイラはどれですか? 私は複数のコンパイラを試しましたが、これまでのところそれを定義しているようには見えません。

0 投票する
2 に答える
799 参照

c - asprintf - C で文字列入力を取得する方法

私は本「21 世紀 C」 (初版) を読んでいて、文字列の長さやスペースの割り当てに malloc /size を使用せずに、asprintf を使用して文字列を取得する興味深いプログラムを見つけました。文脈を理解するために同書の添付画像を読んでください。以下のプログラムも本から。プログラムのコンパイルが実行され、次のメッセージが表示される代わりに、キーボードからの文字列入力が取得されません。質問: 長い (異常な) エラー メッセージを表示する代わりに、プログラムが keboard からの文字列入力を取得しないのはなぜですか?

プログラムを実行すると、出力は次のようになります。

ここに画像の説明を入力