問題タブ [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.
ruby - Rubyでファイルを作成する方法
新しいファイルを作成しようとしていますが、期待どおりに動作していないようです。これが私が試したことです:
私がオンラインで読んだすべてによると、それらはすべて機能するはずですが、それらのすべてが私にこれを与えます:
これは、Ruby スクリプトだけでなく、IRB からも発生します。私は何が欠けていますか?
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)) に切り替えると、正しく動作することに注意してください。変。
c - 単純なメッセージングアプリケーション...errno14を取得しています:不正なアドレス
ソケットを使用してCで簡単なメッセージングアプリケーションを作成しています。関数を使用するrecvfrom
と、それが返され、どちらが(最後に印刷している)であるかが-1
設定されます。errno = 14
Bad address
奇妙なことに、それでもソケットから読み取り、正しいメッセージを取得します。つまり、アプリケーションは完全に機能しており、そのエラーを除いて期待どおりに機能しています。
私の質問はこれです:なぜ私がこのエラーを受け取っていると思いますか?理由は思いつかない。inet_pton
設定に使用してpeer->sin_addr
いましたが、同じエラーが発生していました。
c++ - このコードはスレッドセーフではありませんね。
次のようなコードを見て、これがスレッドセーフかどうか疑問に思いました。
これはスレッドセーフではないと思いますが、正しいですか?
しかし、私は人々がこのようなコードを書いているのを見たので、よくわかりません...
これを明確にするのを手伝ってくれる人はいますか、ありがとう...
c - 私のライブラリは、不正なポインタ入力で SIGSEGV を処理する必要がありますか?
FILE * ポインターを入力として受け取る小さなライブラリーを作成しています。
この FILE * ポインターをすぐにチェックして、セグメンテーション違反につながることがわかった場合は、シグナルを処理し、errno を設定して、正常に終了する方が正しいですか? または、何もせずに、発信者がインストールしたシグナル ハンドラーを使用しますか?
「ライブラリは決してクラッシュを引き起こしてはならない」というのが一般的な知恵のようです。しかし、私の考えでは、この特定の信号は間違いなく発信者の責任であるため、発信者からその情報を隠そうとするべきではありません。彼は、独自の方法で問題に対応するために、独自のハンドラーをインストールしている場合があります。errno を使用して同じ情報を取得できますが、SIGSEGV のデフォルトの処理は正当な理由で設定されており、シグナルを渡すことは、発信者にエラーを処理させるか、クラッシュさせてさらなる損傷から保護することにより、この哲学を尊重します。 .
この分析に同意しますか、それともこの状況で SIGSEGV を処理する説得力のある理由があると思いますか?
ruby-on-rails - CSSアセットのコンパイル中にエラーが発生しました
私はCentOS6にRail3.1.1アプリをデプロイしようとしています
これは私が得ているエラーです
私は助けに感謝します。
c - Errno : proc エントリで fopen を使用すると 13
ロード可能なカーネル モジュールによって作成された /proc ファイルを書き込もうとしています。fopen() を使用してファイルを書き込み用に開いていますが、errno : 13 (許可が拒否されました) が発生しています。
これを克服する方法について何か提案はありますか?
ありがとう。
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
c++ - ソケットが -1 (errno 97) を返すことはめったにありません
次のコードを試す C++ プログラムを実行しています。
ただし、上記は時々 -1 を返し (おそらく 3000 回以上の実行で 1 回)、errno は次のように表示します。
これはどのように可能ですか?この行を実行すると、同じ結果が何度も得られるはずですか?
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つの主な質問は次のとおりです。
- なにが問題ですか?と
- それを修正する方法は?より正確には、この単純なプログラムを改善して、Mac OS X の realloc が成功したときに errno をゼロのままにする方法は?