問題タブ [system-calls]
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++ - C++ で "system" を呼び出すときにコンソールを非表示にする
C++ でコマンドを使用してsystem
外部プログラムを呼び出していますが、それを使用するたびに、コマンドの終了後にコンソール ウィンドウが開いたり閉じたりします。
コンソール ウィンドウが開かないようにするにはどうすればよいですか? プラットフォームに依存しないソリューションになれば幸いです。また、コマンドが終了するまでプログラムを待機させたいと思います。
c - 次の (完全に有効な) C コードが Objective-C のファイルの内容を表示しないのはなぜですか?
ファイルを開いて読み取るための非常に基本的な C スニペットを次に示します。
これらの標準ヘッダーも含めています。
このコードは C で正常に動作し、Objective-C は CI のスーパーセットであるため、Obj-C でも正常に動作すると予想されます。しかし、代わりに、次のようなすべてのガベージ データを取得しています。
なんで?
unix - ソケットへの書き込みは、sendfile() システムコールの任意の制限ですか?
前奏曲
sendfile()
次の 2 つの理由から、非常に便利な syscall です。
まず、/ (ジャイブを好む場合は/ ) ループよりもコードが少なくて済みます。
第二に、前述の方法よりも高速です(システムコールが少ない、実装がバッファなしでデバイス間でコピーされるなど)。read()
write()
recv()
send()
コードが少ない。もっと効率的。素晴らしい。
UNIX では、すべてが (ほとんどの場合) ファイルです。これは、プラトニックな理論と現実世界の実践が衝突した醜い領域です。ソケットは、一部のデバイスに存在するファイルとは根本的に異なることを理解しています。Linux/*BSD/Darwin/OS が実装sendfile()
するものは何でも、この特定のシステムコールがソケット (具体的にはストリーミング ソケット) への書き込みに制限されている理由を知るために、ソースを掘り下げていません。
ただ知りたいだけです...
質問
sendfile()
宛先ファイル記述子をソケット以外のもの (ディスク ファイルやパイプなど) にすることを制限しているのは何ですか?
c - UNIXでのシステムコール:ディレクトリとファイル
こんにちは私はシステムコールを理解しようとしています:UNIX上のディレクトリとファイル..私はこのウェブサイトを見つけました。彼らは彼ら自身の例でいくつかのコールを説明していますが、これらのコードスニペットを理解していません..
どのデバイスファイルが欠落しているかを確認するための比較がわかりません..誰かが私を理解するのを手伝ってくれるでしょうか?特にここに..
両側で行われた比較の助けや説明を歓迎しますPD:私の英語=Pでごめんなさい
estado.cと呼ばれるコード例1全体が表示されるリンク
objective-c - Objective-C の Unix システム コール
Objective-Cでシステムコールを行うことは可能ですか?
次のコードがあります。
出力を取得する方法は?
ありがとう
linux - Linux でプログラムによってファイル システムの使用を制限する
私は Linux カーネルのシステム コールを作成するように割り当てられました。これは奇妙なことに、ユーザーの 1 分あたりの最大転送量 (ファイル操作の場合) を決定 (および削減) します。このシステム コールが呼び出されlim_fs_usage
、すべてのユーザーが 1 分間にアクセスできる最大バイト数のパラメーターを受け取ります。簡単に言うと、Linux でのすべてのファイル システム操作の帯域幅を決定します。このプロジェクトでは、この制限されたリソース (ファイル アクセス) をユーザー間で配布するための適切な方法を選択することも求められますが、これは大きな問題にはならないと思います。
長い長い検索とスキャンを行いましたが、ファイル システムへのアクセスをプログラムで管理する方法を見つけることができませんでした。( )ハード ドライブをメモリにマッピングmmap()
し、メモリ操作を管理することを考えましたが、これは無駄になりました。また、仮想ファイル システムを監視および制限するために、仮想ファイル システムの API を見つけようとしましたが、見つかりませんでした。アイデアをお願いします...どんな助けも大歓迎です。前もって感謝します...
windows - NtAllocateVirtualMemory syscall パラメータ
AllocateVirtualMemory syscall で AllocationType パラメーターの可能な値をすべて確認したところ、0x202000 や 0x203000 などの値を受け入れることがわかったので、値 0x200000 を持つ別の文書化されていない可能性のあるフラグが必要です。WinNt.h では、MEM_WRITE_WATCH として定義されています。
私はそれが何をするのか知りたいですか?
ありがとうございました。
c - ファイルシステムからの「ショートリード」、いつ発生する可能性がありますか?
一般に、read(2)システムコールは、読み取られるように要求されたバイトよりも少ないバイトを返すことができることは明らかです。ただし、かなりの数のプログラムは、ローカルファイルを操作するときに、read(2)が要求されたものよりも少なくなることはないと想定しています(もちろん、ファイルが短い場合を除きます)。
だから、私の質問は:Linuxでは、開いているファイルからの読み取りが行われず、読み取られる量が最大で数キロバイトである場合、read(2)は要求されたものよりも少ない値を返すことができますか?
いくつかの推測:
- 受信した信号はそのような読み取りを中断できますが、失敗させることはできませんか?
- さまざまなファイルシステムがこの動作に影響を与える可能性がありますか?jffs2について何か特別なことはありますか?
c - fopen または open を呼び出すときに使用されるエンコーディングは?
open
Linux で ' ' のようなシステム コールまたは ' ' のような stdio 関数を呼び出すときはfopen
、' ' を指定する必要がありますconst char * filename
。私の質問は、ここで使用されているエンコーディングは何ですか? それは utf-8 か ascii か iso8859-x ですか? システムや環境設定に依存しますか?
_wopen
MS Windows には、 utf-16 を受け入れるがあることを知っています。
linux-kernel - カーネルスペースからLinuxシステムコールを呼び出すにはどうすればよいですか?
Linux2.4用に作成されたLinuxカーネルモジュールをLinux2.6で動作するように移植しています。syscallN()
マクロを介して宣言され、呼び出しでラップされた一部のシステムset_fs()
コールがコードで使用されました。これらのマクロが存在しないLinux2.6でsycallを引き続き使用するにはどうすればよいですか?
syscallN()
カーネルスペースからsyscallを使用するのは悪い味であり、ほとんどのプラットフォームでマクロが壊れていることを私は知っています。getuid
カーネル空間で、、、、、、、syscallgeteuid
を置き換えるための合理的な方法があればmknod
幸いchown
ですunlink
。sched_yield