問題タブ [posix]
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.
c - Win32APIのPosixpopen()に相当するものは何ですか?
Win32APIのLinux/Unix stdio.h popen()関数に大まかに相当するものはありますか?もしそうなら、どこでそれを見つけることができますか?
編集:D標準ライブラリの省略にパッチを当てるには、これを知る必要があります。すべての回答は、標準のWin32 APIのみを使用する必要があり、MSVC固有の関数は使用しないでください。また、それが存在する場合、私はひどく低レベルではないものを好みます。
c - POSIX C API 関数のリストはどこにありますか?
POSIX 関数に関するドキュメントをどこで見つけることができるかを調べようとしていますが、不足しています。推奨事項はありますか?
c - POSIX システムでログ ファイルが削除または切り捨てられたことを検出しますか?
長時間実行されるプロセスがログ ファイルに書き込むとします。ログ ファイルが無期限に開かれているとします。不注意なシステム管理者がそのログ ファイルを削除したとします。プログラムはこれが発生したことを検出できますか?
fstat()
削除されたファイルのリンク数が 0 と報告されると想定しても安全ですか?
切り捨ては、私には少し難しいようです。一部は、ファイル記述子がO_APPEND
モードで実行されているかどうかによって異なります。ログ ファイルが で実行されていない場合O_APPEND
、プログラムのログ記述子の現在の書き込み位置は変更されず、切り捨てによって先頭のバイトが削除されますが、プログラムは「最後」に書き込みを続け、幻のゼロのギャップが残ります。バイト (ゼロとして読み取られますが、必ずしもディスク上のスペースを占有するとは限りません)。
プログラムが で実行O_APPEND
される場合、現在存在するファイルの最後に書き込みます。切り捨てを観察する唯一の方法は、ファイルの位置がプログラムが予期した場所ではないことに注意することです。これは、その位置を明示的に追跡することを意味します。
全体として、切り捨てについては削除ほど心配していませんが、どんな考えでも大歓迎です。
c - Cでディレクトリのサイズを取得するにはどうすればよいですか?
ディレクトリ(すべてのサブフォルダを含む)のサイズを「du -s somepath
」とほぼ同等にするPOSIX関数はありますか?
c++ - コマンドを実行し、POSIX を使用して C++ 内でコマンドの出力を取得するにはどうすればよいですか?
C++ プログラム内からコマンドを実行したときにコマンドの出力を取得する方法を探しています。関数を使用して見ましたsystem()
が、それはコマンドを実行するだけです。これが私が探しているものの例です:
任意のコマンドを実行して、その出力を取得する必要があります。boost.orgを見てきましたが、必要なものを提供してくれるものは見つかりませんでした。
linux - Linux初心者:LinuxvsPOSIXマニュアル
そのため、LinuxプログラマーマニュアルとPOSIXプログラマーマニュアルのマニュアルページがあります。どちらを好むべきですか、そしてその理由は何ですか?(私はLinuxアプリケーションを書いていますが、AIX、BSDなどに移植する予定はありません)
ありがとう。
multithreading - MSVC / Windowsの「pthread_rwlock_timedrdlock()」および「pthread_rwlock_timedwrlock()」に相当します
Windows(MSVC)でPOSIXタイミングリーダー/ライターロックを実行するのと同じことは何ですか?
- pthread_rwlock_timedrdlock()
- pthread_rwlock_timedwrlock()
c - C で現在のマシンの完全なホスト名 (ホスト名とドメイン情報) を見つけるにはどうすればよいですか?
C プロジェクト (POSIX) で、現在のシステムの完全修飾名を取得するにはどうすればよいですか?
たとえば、
gethostname()
unistd.h から実行することで、自分のマシンのホスト名だけを取得できます。これは私machine3
に見返りを与えるかもしれませんが、私は実際に例を探してmachine3.somedomain.com
います。
この情報を取得するにはどうすればよいですか? 可能であれば、これを行うために system() の呼び出しを使用したくありません。
windows - LinuxでPOSIXメソッドを使用してファイルからUnicode-16文字列を読み取るにはどうすればよいですか?
Linuxプログラムに読み込みたいUNICODE-16文字列を含むファイルがあります。文字列は、Windowsの内部WCHAR形式から生で書き込まれました。(Windowsは常にUTF-16を使用しますか?たとえば、日本語版)
生の読み取りとwcstombs_lによる変換を使用してそれらを読み取ることができると思います。ただし、使用するロケールがわかりません。最新のUbuntuおよびMacOSXマシンで「locale-a」を実行すると、名前にutf-16が含まれるロケールはゼロになります。
もっと良い方法はありますか?
更新:正解と以下の他のものは、私がlibiconvを使用することを指摘するのに役立ちました。これが私が変換を行うために使用している関数です。私は現在、1行のコードに変換するクラス内にそれを持っています。
linux - ALSA音速を使用してプロセスを見つける
現在、/usr/sbin/alsa
Debian でサウンド カードを使用するプロセスを認識する方法は次のようになります。
これはかなり醜く、に依存しlsof
ます。lsof
おそらく/procを使用して、を使用しないPOSIXソリューションを探しています。
lsof
残念ながら、上記のベース スニペットの 2 倍の時間がかかるようです。実行可能な代替品にするために、高速化できますか?
更新上記を次のように書き直しました。
しかし、以前のスニペットと同じパフォーマンスを持っているようです。grep が原因だと思います。
更新:このトピックに関するDebian バグをオープンしました。