問題タブ [bsd]

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 に答える
1164 参照

python - python select.kqueue() を使用して、ファイルが削除または拡張されているかどうかを確認します

こんにちは、BSD のみの python モジュール クラス select.kqueue および select.kevent を使用して、ファイル書き込みイベントの監視を設定する方法を理解するのに苦労しています。

テキストファイルが別のプロセスによって書き込まれるたびに、Pythonプログラムが応答するようにします。私のテストコードは次のようになります:

これらのイベントが実際に発生したことを確認する方法がわかりません。誰かが kqueue を使用してファイルの変更やその他のイベント (ファイルの削除、ファイルの名前変更など) を検出する例を教えてもらえますか?

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

c - nftw BSD では違うのですか?

nftw次のコードを使用して、ディレクトリ ツリー内のすべての .c ファイルを取得しようとしています。

Linux と Solaris では動作しますが、PC-BSD では単にファイルを取得しないために失敗します。私は何が欠けていますか?

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

logging - Freenas、rsyncd の最大ログ サイズ

Rsync でいくつかの問題が発生しており、ログ ファイルのエラーを読みたいと思っていますが、どこかで 32kb に制限されているため、少なくとも 24 時間前を確認できる必要があります。

例えば:

最大サイズを増やすにはどうすればよいですか?

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

c - Vfork() およびその他の破損

私の質問は、実行時に親スタックに何が起こるかです?

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

c - OPEN_MAX のポータブル版

nftw使用するファイルハンドルの数のパラメーターが必要であり、「できるだけ多く」と言う方法がないようです。255 を指定すると、Linux では機能するように見えますが、BSD では失敗します。どうやら OPEN_MAX は BSD で推奨されるソリューションですが、Linux では動作しないため使用できません。

Linux と BSD の両方で動作する、移植可能な OPEN_MAX に相当するものはありますか?

あるいは、実用的な目的のために移植可能な移植可能な数値、速度を落とさないのに十分な大きさの数値はありますか (理想的には POSIX で指定されているか、少なくとも重要な市場シェアを持つすべての Unix のようなシステムで動作します)。

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

macos - Mac OS X の kqueues: イベントの順序がおかしい

kqueues/kevent(2) を使用して、別のスレッドでファイルの変更を監視します。(再解析のためにPythonファイルを監視しています)

私は次のように購読します:

Vim を使用してファイル "/tmp/somefile.py" に書き込むと、2 つの別個の kevent を取得します。これらのイベント (event.fflags) のフラグは次のとおりです。

「NOTE_WRITE」イベントは発生しません。これは、Vim がこれらのファイルを書き込む方法と関係があるようです。

私は得る:

イベント。

変ですよね?Vim のソース コードはチェックしていませんが、何かおかしなことをしているに違いありません。

私は本当にこれを期待していませんでした。これは既知の問題ですか、考えられるすべてのイベントを確認する必要があるだけですか、それとも、ファイルが書き込まれたかどうかを実際に確認する既知のインターフェイスはありますか?

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

git - ユーザーとしてホーム ディレクトリに Git をインストール: エラーですか?

ユーザーとしてシェル アカウントを持っているが root 権限を持っていない UNIX サーバーのホーム ディレクトリに git をインストールしようとしています。これらのソースの指示に従っています。

共有ホストに Git をインストールする方法

git/scm ブック

gitソースディレクトリ内のINSTALLファイルの指示ですが、このエラーメッセージのほとんどが繰り返される無限のリストを取得し続けます:

明確にするために、これはルート権限を持っていないシステムではなく、ホームディレクトリ内にあります。

アイデアや提案はありますか?私は何を間違っていますか?

編集: Greg Hewgill の提案に従って、コマンドを gmake として実行してみました。

エラーメッセージは次のとおりです。

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

macos - Mac OS X で fork した後に chdir または setenv を呼び出すことはできますか?

OS X では、fork の man ページに次のように書かれています。

子プロセスでできることには制限があります。完全に安全にするには、exec 関数の 1 つが呼び出されるまで、非同期シグナルの安全な操作のみを実行するように制限する必要があります。フレームワークまたはライブラリ内のグローバル データ シンボルを含むすべての API は、安全または async-signal 安全であることが明示的に文書化されていない限り、fork() の後は安全でないと想定する必要があります。子プロセスでこれらのフレームワークを使用する必要がある場合は、exec する必要があります。この状況では、自分自身を実行するのが合理的です。

マニュアルページのフッターに基づいて、これはおそらく長い間そこにありました:

第 4 回バークレー配布 1993 年 6 月 4 日 第 4 回バークレー配布

chdir(2) は fork() と exec() の間で安全に呼び出せると思っていましたが、そのマニュアル ページには非同期呼び出しに対して安全であるとは書かれていません。実際、それは安全ではありませんか?もしそうなら、fork() の前にディレクトリを変更することが本当に期待されていますか? 私には不合理に思えます。

setenv(3) についても同様です。malloc() を呼び出すことを考えると、おそらく安全ではないと思います。しかし、環境を渡すことができる execvp に相当するものはありません。具体的には、execvp は PATH を検索します。私が見つけた中で最も近いのは、環境引数を取る execve() であり、PATH を検索しません。

0 投票する
5 に答える
6041 参照

c - 実行時に OS を決定する

ISO C も POSIX も、実行時に基盤となる OS を判別する機能を提供していません。理論的な観点からは、C は最も一般的なシステム コールのラッパーを提供するため問題ではありませ

ただし、多くの現実世界のシナリオでは、ホスト環境について、C が喜んで共有するよりも多くのことを知ることが役立つことが証明されています。たとえば、構成ファイルを保存する場所や を呼び出す方法を見つけるために、次のようになりますselect()

C で記述されたアプリケーションが実行時に基盤となる OS を判別する慣用的な方法はありますか?

少なくとも、Linux、Windows、BSD、および MacOS のどれかを簡単に判断できますか?

C:\私の現在の推測では、やなどの特定のファイル/ディレクトリの存在を確認することです/が、このアプローチは信頼できないようです。おそらく、一連のそのようなソースを照会すると、「OS フィンガープリント」の概念を確立するのに役立ち、信頼性が向上します。とにかく、私はあなたの提案を楽しみにしています。

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

shell - シェルスクリプトでBSDバージョンとGNUバージョンの日付を検出するにはどうすればよいですか

日付文字列操作を行う必要があるシェル スクリプトを作成しています。スクリプトはできるだけ多くの *nix バリアントで機能する必要があるため、マシンに BSD または GNU バージョンの date が含まれている可能性がある状況を処理する必要があります。

正しい日付フラグを送信できるように、OS の種類をテストする最もエレガントな方法は何でしょうか?

編集: 明確にするために、私の目標は、BSD と GNU で異なるように見える日付の相対日付計算ツールを使用することです。

BSD の例

GNU の例