問題タブ [errno]

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

ruby - Rubyでファイルを作成する方法

新しいファイルを作成しようとしていますが、期待どおりに動作していないようです。これが私が試したことです:

私がオンラインで読んだすべてによると、それらはすべて機能するはずですが、それらのすべてが私にこれを与えます:

これは、Ruby スクリプトだけでなく、IRB からも発生します。私は何が欠けていますか?

0 投票する
0 に答える
1233 参照

android - Android 2.1 ファイル I/O: pread が errno 22 で失敗する (EINVAL、無効な引数)

以下に示すように、open(2)、pread(2)、および pwrite(2) を使用して単純なファイル コピー操作を行っています (コードは少し簡略化されています)。私の問題は、::pread(2) 関数が [errno=22] で -1 を返さないことです。ソース ファイルと宛先ファイルの両方が SD カードに配置されることに注意してください。この問題は Android 2.1 (API レベル <=7、エミュレーターと実機の両方) で発生しますが、Android 2.3 (API レベル 9) で実行する場合は問題ありません。コードに問題がありますか、それともカーネル/stdlib のバグですか?

また、read(2)、write(2) を使用するか、ストリーミング API (fread(3)、fwrite(3)) に切り替えると、正しく動作することに注意してください。変。

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

c - 単純なメッセージングアプリケーション...errno14を取得しています:不正なアドレス

ソケットを使用してCで簡単なメッセージングアプリケーションを作成しています。関数を使用するrecvfromと、それが返され、どちらが(最後に印刷している)であるかが-1設定されます。errno = 14Bad address

奇妙なことに、それでもソケットから読み取り、正しいメッセージを取得します。つまり、アプリケーションは完全に機能しており、そのエラーを除いて期待どおりに機能しています。

私の質問はこれです:なぜ私がこのエラーを受け取っていると思いますか?理由は思いつかない。inet_pton設定に使用してpeer->sin_addrいましたが、同じエラーが発生していました。

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

c++ - このコードはスレッドセーフではありませんね。

次のようなコードを見て、これがスレッドセーフかどうか疑問に思いました。

これはスレッドセーフではないと思いますが、正しいですか?

しかし、私は人々がこのようなコードを書いているのを見たので、よくわかりません...

これを明確にするのを手伝ってくれる人はいますか、ありがとう...

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

c - 私のライブラリは、不正なポインタ入力で SIGSEGV を処理する必要がありますか?

FILE * ポインターを入力として受け取る小さなライブラリーを作成しています。

この FILE * ポインターをすぐにチェックして、セグメンテーション違反につながることがわかった場合は、シグナルを処理し、errno を設定して、正常に終了する方が正しいですか? または、何もせずに、発信者がインストールしたシグナル ハンドラーを使用しますか?

「ライブラリは決してクラッシュを引き起こしてはならない」というのが一般的な知恵のようです。しかし、私の考えでは、この特定の信号は間違いなく発信者の責任であるため、発信者からその情報を隠そうとするべきではありません。彼は、独自の方法で問題に対応するために、独自のハンドラーをインストールしている場合があります。errno を使用して同じ情報を取得できますが、SIGSEGV のデフォルトの処理は正当な理由で設定されており、シグナルを渡すことは、発信者にエラーを処理させるか、クラッシュさせてさらなる損傷から保護することにより、この哲学を尊重します。 .

この分析に同意しますか、それともこの状況で SIGSEGV を処理する説得力のある理由があると思いますか?

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

ruby-on-rails - CSSアセットのコンパイル中にエラーが発生しました

私はCentOS6にRail3.1.1アプリをデプロイしようとしています

これは私が得ているエラーです

私は助けに感謝します。

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

c - Errno : proc エントリで fopen を使用すると 13

ロード可能なカーネル モジュールによって作成された /proc ファイルを書き込もうとしています。fopen() を使用してファイルを書き込み用に開いていますが、errno : 13 (許可が拒否されました) が発生しています。

これを克服する方法について何か提案はありますか?

ありがとう。

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

c++ - Select() を使用して「エラーなし」エラーが返される

Select() を使用して、ソケットで読み取り可能なデータがあるかどうかを判断する際に問題が発生しています。接続しているソケットにはデータがないため、select がタイムアウトまたは 0 の値を返すことを期待しています。代わりに、-1 の値を取得し、メッセージは「エラー: エラーなし」です。

この例に非常によく似たコードがあります: https://beej.us/guide/bgnet/html/multi/selectman.html

ここで select() ドキュメントを数回読みました: msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx

どんなアイデアでも大歓迎です。ありがとう!

仕様: C++、Win-XP、Microsoft Visual C++ 2010

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

c++ - ソケットが -1 (errno 97) を返すことはめったにありません

次のコードを試す C++ プログラムを実行しています。

ただし、上記は時々 -1 を返し (おそらく 3000 回以上の実行で 1 回)、errno は次のように表示します。

これはどのように可能ですか?この行を実行すると、同じ結果が何度も得られるはずですか?

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

c - Linux と osx での realloc の動作の違い

私はこの単純なCプログラムを持っています:

4 MiB のメモリを割り当てるだけで、再割り当てによってそのサイズを 2 倍にしようと 10 回試みます。realloc への単純な呼び出しは、ヒープ アロケーターの「トリック」を最小限に抑えるために、1 MiB ブロックの別の割り当てといくつかのランダム書き込みでインターリーブされます。16 GiB RAM を搭載した Ubuntu Linux マシンでは、次の出力が得られます。

そのため、4 GiB までのすべての再割り当ては成功しているように見えます。ただし、次のコマンドでカーネル仮想メモリのアカウンティング モードを 2 (常にチェックし、オーバーコミットしない) に設定すると、次のようになります。

出力は次のように変わります。

再配置は 2 GiB で失敗します。によって報告された時点でのコンピューターの空きメモリはtop約 5 GiB であり、realloc は常にメモリの連続ブロックを割り当てる必要があるため、妥当です。ここで、同じマシンの VirtualBox 内で Mac OS X Lion で同じプログラムを実行するとどうなるか見てみましょう。仮想 RAM は 8 GiB しかありません。

ここで、このプログラムには、最初の 8 MiB への再割り当てに問題があります。私の意見では、これは非常に奇妙topです.

しかし、実際には realloc が成功したのは、その戻り値が非 NULL であるためです (tmp_pointerプログラム終了の直前の値に注意してください)。しかし、まったく同じように realloc の呼び出しが成功すると、errno もゼロ以外に設定されます。さて、この状況を処理する正しい方法は何ですか?

errno を無視して、realloc からの戻り値のみをチェックする必要がありますか? しかし、次の errno ベースのエラー ハンドラはどうでしょうか。これはおそらく良い考えではありません。

realloc が非 NULL ポインターを返す場合、errno をゼロに設定する必要がありますか? これは解決策のようです。しかし...私はここを見ました: http://austingroupbugs.net/view.php?id=374。このリソースがどれほど権威があるかはわかりませんが、realloc に関しては、これについては非常に明確です。

「...標準では、文書化されていない限り、成功時にerrnoを検査できないことも明示されています...」

私の理解が正しければ、それは次のように言っています。つまり、errno をゼロにリセットできますか? 一度も見ずに?何が悪いのか、何が良いのかを理解して判断するのは非常に不明確だと思います。

そもそもなぜ realloc がこの errno を設定するのか、まだ理解できません。そして、「無効な引数」の値はどういう意味ですか? man ページには記載されておらず、errno ENOMEM (通常は 12 番) のみが記載されています。何か問題が発生する可能性がありますか?この単純なプログラムの何かが Mac OS X でこの動作を引き起こしているのでしょうか? おそらくそうでしょう...だから、2つの主な質問は次のとおりです。

  1. なにが問題ですか?と
  2. それを修正する方法は?より正確には、この単純なプログラムを改善して、Mac OS X の realloc が成功したときに errno をゼロのままにする方法は?