問題タブ [nul]

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 投票する
1 に答える
292 参照

bash - bashでAWKを使用してNUL文字セパレーターを追加するには?

いくつかのファイル パスを出力する関数があります。これらのパスを改行\n文字ではなく NUL 文字で区切る必要があります。次のコードを試しました:

しかし、その出力をhexdumporにパイプするhdと、NUL 文字は表示されません。awk出力に NUL 文字が含まれていないようです。

印刷します:

私のawkバージョンは次のとおりです。

また、次のような他のコマンドを使用したソリューションsedは、私にとって受け入れられます。
注:私の質問は、enter link description hereawkの重複ではありません。これは、異なるsを持つ異なるマシンで動作するソリューションを求めるためです。ただし、自分のマシンで機能するソリューションが必要なだけなので、awkUbuntu 14.04 にインストールできる任意のバージョンを使用できます。

0 投票する
1 に答える
792 参照

shell - プロセス置換での NUL バイトのスキップ/無視は標準化されていますか?

エグゼクティブサマリー

プロセス置換を行うときにシェルが NUL バイトをスキップするのは標準的な動作ですか?

たとえば、

お譲り致しabcます。printf出力の 16 進ダンプで明らかに出力されていることが示されていても、NUL 値はスキップされます。

私の最初の考えは「単語分割」でした。ただし、実際のプロセス代替を使用する場合は、

結果は類似しており、=単語分割は実行されません。

長い話

この質問に対する適切な答えを探しているときに、プロセス置換から変数に値を読み取るときに、私がかなり慣れている少なくとも 3 つのシェル実装 (ash、zsh、および bash) が NUL 文字を無視することに気付きました。

これが発生するパイプラインの正確なポイントは異なるようですが、最初から存在しなかったかのように、一貫して NUL バイトがドロップされます。

いくつかの実装を確認しましたが、これは正常な動作のようです。

ashinputスキップし'\0'ますが、これが純粋な偶然なのか意図した動作なのかは、コードからは明らかではありません。

bashソース コードには、プロセス置換で NUL 値をスキップしたことを示す明示的な#ifdef警告が含まれています。

zshさんの行動についてはよくわかりません。(内部関数'\0'で定義されているように) メタ文字として認識し、特殊なサロゲート文字を先頭に追加し、入力文字にビット #5 を設定して、基本的にメタ文字を解除します。これにより、makeもスペースになります) 。imeta()Meta'\0'' '

value上記のprintfコマンドにメタ文字が含まれているという証拠がないため、これは後で削除されるようです。私はzshの内部構造に慣れていないので、これを大いに参考にしてください。また、副作用のないステートメントにも注意してください。

zshに NUL (メタエスケープ) を含めることもできることに注意してください(たとえば、なしIFSで単語を分割することが可能になります)。したがって、 との値に応じて異なる結果が得られるはずです(フィールド分割を行います)。find -print0xargs -0printf '\0abc' | read valuevalue=$(printf '\0abc')IFSread

0 投票する
1 に答える
1471 参照

c - NULL ポインターへの特定の値

null ポインターと void ポインターの違いは何ですか?で NULL ポインターについて言及していました。 @AnT による投稿の返信によると、「正式には、特定のポインター型 (int *、char * など) ごとに専用のヌルポインター値があります」

簡単なプログラムを書きました。ただし、整数または文字のポインター値は固定されていません。時々変わります。では、int への NULL ポインターが固定値を持つとどのように判断できるのでしょうか? また、ポインターの値が 0 になることはありません。

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

html - HTML に NUL 文字を含めることができないのはなぜですか? (0xFFFD / "%EF%BF%BD" に変換)

特別な値については、 HTML を試しました<option value="&#0;">unspecified</option>が、 NUL 文字は HTML で解釈されないようです。私は�</a> を得ています。NULその理由と、他に気をつけなければならないUTF-8 の異常な文字を知りたいです。

これは、私が話していることを示すフィドルです。

上記のように、ドロップダウンは NUL 値で設定されていますが、JavaScript が結果を検査するときに � に変換されます。

JavaScript は明示的にvalueandlabelを設定し\u0000て動作させることができますが、何らかの理由でこれを HTML でレンダリングすることはできません。

理由を説明したり、関連するドキュメントを参照したりできますか? 同様の方法で置換される UTF-8 文字は他にありますか?

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

c - `printf` のフォーマット指定子を介して null バイトを渡す

printfASCII テーブルの NULL 文字を使用すると、停止せずにスペースが出力されるのはなぜですか? これが私が意味することです:

文字列自体にエスケープ文字を入れた場合にのみ、文字列がprintf停止します。

Windows 8、Windows 10 (cygwin、MinGW、Netbeans、Code::Blocks を使用)、XUbuntu でこれを試しましたが、すべて同じです。

問題はどこだ?友人に尋ねたところ、3 つの例はすべて同じように実行されたので、そのような問題はないとのことでした。

0 投票する
1 に答える
4488 参照

r - 「NUL」文字の削除 (R 内)

大量の文字が含まれる奇妙なテキスト ファイルNUL(実際には約 10 のようなファイル) があり、R 内からプログラムでそれらを置き換えたいと考えています。ファイルの 1 つへのリンクを次に示しますこの質問の助けを借りて、私は最終的に 、各ファイルに入り、迷惑な文字を見つけて置き換えるためのアドホックな方法よりも優れた方法を見つけました。それらの各ペアは、ファイルの意図した行幅を維持するために 1 つのスペース ( [NUL][NUL]-> ) に対応する必要があることがわかります (これは、これらをさらに固定幅として読み取るために重要です)。

ただし、堅牢性のために、ソリューションへのより自動化されたアプローチを好みます。理想的には (組織のために) ファイルをクリーンアップするために、作成中の R スクリプトの先頭に追加できるものです。この質問は有望に見えましたが、受け入れられた回答は不十分です-readLinesこれらのファイルで使用しようとするとエラーがスローされます(有効にしない限りskipNul)。

このファイルの行を R に取得する方法はありますgsubか?外部プログラムに頼らずに、この問題を修正するために何か他のものを使用できますか?

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

c - argc / argv は配列の null バイトに影響しますか?

その理由は次のとおりです。

期待どおりに(「123」+いくつかのランダムな文字)を生成1238À§Wˇしますが、同じコードは次のとおりです。

int main(void)

の代わりにargcargv以下を生成します123(null バイトの余地がないにもかかわらず)。

arraywithの null バイトの余地voidがないことが問題にならないのはなぜですか?