問題タブ [stdio]
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++でファイルの先頭へのポインタを取得する方法
C ++で、開いているファイルの先頭へのポインターを取得して、ファイルのサイズと一緒にUNIX書き込み関数に渡すことができるようにすることはできますか?
明確にするために、ファイル全体を書き込みのような関数に渡したいのですが、これを行うにはどうすればよいですか?
c - remove() オープンファイルは「安全」ですか?
入力ファイルと出力ファイルの両方に同じファイル名を使用する可能性をプログラムに追加して、入力ファイルを置き換えることを考えています。
処理されたファイルは非常に大きい可能性があるため、最初にファイルを開き、それを削除して新しいファイルを作成するのが最善の解決策だと思います。つまり、次のようになります。
(もちろんエラーハンドリングも追加)
remove()
すべてのシステムで開いているファイルを削除できるわけではないことを認識しており、その場合に失敗する限り、それは許容されます。
開いているファイルを削除して、その内容を読み取れないシステムがないか心配です。
C99 標準では、その場合の動作を「実装定義」として指定しています。SUSはそのケースについてさえ言及していません。
あなたの意見/経験は何ですか? 心配する必要はありますか?そのような解決策を避けるべきですか?
編集: これは主要な機能ではなく、ユーザーが入力ファイルと出力ファイルの両方に同じファイル名を指定した場合の「最後の手段」であることに注意してください。
編集: わかりました、もう 1 つ質問があります: この特定のケースでは、私が提案した解決策は、出力ファイルを書き込み専用で開くだけでなく、より多くの悪を実行できる可能性があります (つまり、上記のように、remove()
呼び出しなしで)。
c - Cで入力ストリームをフラッシュするにはどうすればよいですか?
ここでstdinをフラッシュできませんが、フラッシュする方法はありますか?そうでない場合は、入力バッファにgetchar()
残された「\ n」の代わりに、ユーザーからの入力として文字を取得する方法を教えてください。scanf()
編集:更新されたコード、まだ正しく機能していません
出力:
python - 別のプログラムの出力をその場で入力として取得する
このように使用しているプログラムは2つあります。
c_programはを使用して何かを出力しprintf()
、python_program.pyはを使用して読み取りますsys.stdin.readline()
python_program.pyが印刷時にc_programの出力をすぐに処理して、それ自体の現在の出力を印刷できるようにしたいと思います。残念ながら、python_program.pyは、c_programが終了した後にのみ入力を取得します。
どうすればこれを解決できますか?
c - CでのEOFの検出
次のCコードを使用して、EOFが発生するまでユーザーから入力を受け取りますが、このコードが機能せず、最初の入力を受け取った後に終了するという問題があります。誰かがこのコードの何が問題なのか教えてもらえますか?前もって感謝します。
linux - バックグラウンド操作の検出
Cでは、プログラムを検出する方法は「バックグラウンドモード」で呼び出されましたか?インタラクティブまたはバックグラウンドで起動したいプログラムがあります。
stdinから読み取ってはならず、「Stopped:ttyinput」状態で終了するべきではないことをどのように検出できますか?
stdinが閉じていることをテストする必要がありますか?どうやってやるの ?
編集:isattyは良い考えのようですが、stdinがパイプエンドであり、ttyではない場合はどうなりますか?
c - ソケット上のgetline
getlineと同じことをするが、FILE *ストリームの代わりに接続されたソケットで動作するlibc関数はありますか?
回避策は、ソケットでfdopenを呼び出すことです。そうするとき、世話をしなければならないことは何ですか。それをする/しない理由は何ですか。
それを行う明らかな理由の1つは、getlineとcoを呼び出すことですが、カスタムgetlineを書き直す方がよいのではないでしょうか。
c - 基になるファイル記述子を閉じずにFILEポインターを閉じます
を使用するとfdopen()
、fileno()
既存のファイル記述子を使用してストリームを開くことができます。ただし、ファイルをストリームで開いた後、ファイルを閉じる適切な方法はfclose()
、FILE
ポインタを使用することです。どうすればストリームを閉じても、開いているファイル記述子を保持できますか?
この動作は、呼び出してからを呼び出してからfflush()
、閉じる場合を除いてポインタを再度fileno()
使用することはありません。FILE
さらに懸念されるのは、fdopen()
もう一度すると、複数のFILE
ポインターがあり、そのうちの1つしか閉じることができないということです。
c - char *a、*b; (ba) とはどのような型で、どのように印刷すればよいですか?
通常は動作しますが、実際には、32 ビットまたは 64 ビットのマシンで警告が表示されたり失敗したりすることは想像できません。しかし、それは ANSI C とサイズ認識のために適切なことでしょうか? Unix 以外や組み込みシステムを含む、可能なすべてのプラットフォームでこのコードが動作することを望みます。
c++ - freopen: 元のストリームに戻しています
生成された一部の印刷物と通常の標準出力への復帰を分離するために、標準出力を別のファイルに転送する必要がありました。
私freopen
はこの方法でファイルに切り替えていました:
実際には機能しますが、プロセスの最後に (stdout が以前と同じ方法で何度もリダイレクトされることに注意してください)、元の stdout に戻すことができません。私は次のことを試しました:
しかし、それはうまくいかないようです..私がmacosxで開発している情報のためだけに。
私は何をすべきか?
前もって感謝します