「交換ヘッダの読み込みに失敗しました:成功」とはどういう意味ですか?

「交換ヘッダの読み込みに失敗しました:成功」とはどういう意味ですか?

Arch Linuxをインストールしようとしています(2014年4月1日のスナップショット)。スワップファイルを作成してみましたがswapon、理解できないエラー(?)メッセージが表示されます。

私はすでに処刑した

fallocate -l 512M /mnt/sda2/swapfile
chmod 600 /mnt/sda2/swapfile
swapon /mnt/sda2/swapfile

出力は次のとおりです

swapon: /mnt/sda2/swapfile: read swap header failed: Success

:(コマンドラインの末尾にあります。それでは成功でしたか、それとも失敗でしたか?スワップファイルを設定する方法ではありませんか?

答え1

スワップファイルを設定する方法ではありませんか?

chmod次の間に1つのステップがありませんswapon

mkswap /mnt/sda2/swapfile

矛盾したエラーについては…

swapon: /mnt/sda2/swapfile: スワップヘッダーを読み込めませんでした: 成功

文字通り、これはコードにバグがあることを意味しますswaponが、必ずしも主な機能に関連しているわけではありません。

よく使われるCライブラリ関数エラー番号、エラーコードを格納するグローバル変数です。関数自体は、エラー(すべてのエラー)が発生したことを示す値を返し、そのエラーの正確な性質はに保存されますerrno。エラー表示を受け取ったら、値をチェックしてエラーが何であるかをerrno正確に知ることができます。だった。

strerror()errno値(整数)を取得し、それに関連する人間の言語文字列を返すライブラリ関数もあります。その1つは、Successエラーコード0(つまりエラーなし)に対応することです。

したがって、このような内容が表示されるとバグがあることを意味します。たとえば、次のようになります。

  • エラーを受け取ると、他の関数が(成功的に)呼び出され、後でerrnoを0にリセットし、次にerrnoを使用して2番目の関数を呼び出す前に発生したエラーの状況を確認します。

そして/または

  • strerror()ある時点でerrno値を割り当てる必要がありましたが(以前のエラーが発生しないように)、実際には割り当てられていない変数を渡します。

関連情報