タグ付けされた質問 「systems-programming」


9
memsetでbzeroを使用する理由
私はこの前学期に受けたシステムプログラミングクラスで、基本的なクライアント/サーバーをCで実装する必要がありました。などの構造体sock_addr_inや文字バッファー(クライアントとサーバー間でデータを送受信するために使用)を初期化するときにそれらを使用するだけで初期化しbzeroないように指示しmemsetました。彼はなぜその理由を説明したことがなく、これに正当な理由があるかどうか私は知りたいですか? 私はここを参照してください:http : //fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownこれbzeroはメモリをゼロにするだけなので、より効率的であるため、実行されるmemset可能性がある追加のチェックを実行する必要があります。それでも、memsetメモリのゼロ化に絶対に使用しない理由とは限りません。 bzeroは非推奨と見なされ、さらに標準のC関数ではありません。マニュアルによると、この理由のためにmemset推奨されbzeroます。では、なぜそれbzero以上に使いたいのでしょうmemsetか?効率を上げるためだけですか、それともそれ以上ですか?同様に、それが新しいプログラムにとって事実上好ましいオプションになっmemsetてbzeroいることの利点は何ですか?

7
指摘されたファイルが移動または削除された場合、Linuxで開いているファイルハンドルはどうなりますか
指摘されたファイルがその間に取得されると、Linuxで開いているファイルハンドルはどうなりますか。 移動->ファイルハンドルは有効なままですか? 削除->これにより、無効なファイルハンドルを示すEBADFが発生しますか? 新しいファイルに置き換えられました->ファイルはこの新しいファイルをポイントしていますか? 新しいファイルへのハードリンクに置き換えられました->ファイルはこのリンクを「フォロー」しますか? 新しいファイルへのソフトリンクに置き換えられました->ファイルハンドルはこのソフトリンクファイルにヒットしますか? なぜ私はそのような質問をしているのですか?私はホットプラグされたハードウェア(USBデバイスなど)を使用しています。デバイス(および/ dev / file)がユーザーまたは別のGremlinによって再接続される可能性があります。 これに対処するためのベストプラクティスは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.