• 締切済み

Cシェルでシステムコール

Cシェルで、selectなどのシステムコールを使うことはできますか? Cシェル内で、1秒以下の精度のタイマーとして使おうとしたところ、どうしてもエラーが返ってきてしまいます。

みんなの回答

  • shigeorg
  • ベストアンサー率23% (3/13)
回答No.1

Cシェルの組み込み (内部) コマンドとして利用できるようにはなっていません。どうしてもシステムコールを使いたいということなら C 言語等で簡単なプログラムを作成して、それを外部コマンドとして呼び出すか、C シェルスクリプトを作成している場合なら Perl などの使いたいシステムコールが使えるスクリプト言語でスクリプトを書くという手があるかと思います。

ack200
質問者

お礼

解答いただきありがとうございます! Perlで書くことにしました。

関連するQ&A

  • システムコールについて

    最近システムコールについて学んでいるのですが、C言語でprintfを実行するために必要なシステムコールを特定するにはどのようなさぎょうをすればよいでしょうか? はじめに適当なプログラムを作ってあるのですが、そのプログラムを工夫することによって特定するやり方でお願いします。

  • fork、exec系、wait系のシステムコール(ライブラリ関数)でのシェル

    簡単なシェルを fork、exec系、wait系のシステムコール(ライブラリ関数)を利用して作りたいですがどのようなソースになるでしょうか? 最低限、以下の機能を実現しなければなりません 1.プロンプトを出力する 2.ユーザに端末からコマンドを入力させる 3.新しくプロセスを生成し、そのプロセスが入力されたコマンドのプログラムを実行する 4.そのコマンドの実行(子プロセス)が終了するまでシェル(親プロセス)は、プロンプトを出さずに待つ 5.1に戻る どうやってもうまくいかないので教えていただけないでしょうか

  • Windowsのシステムコール呼び出し

    アセンブラでシステムコールを呼び出したいのですが、 Linuxとかだとシステムコールの一覧みたいのが載ってるのですが、 Windowsのシステムコールの一覧みたいのが見つかりません。 一覧が載っているようなサイトってありませんか?? とりあえずLinuxの11番(C言語で言うexecv関数)みたいのが使いたいのですが。。。

  • システムコールエラー

    いつもお世話になっています。 またまた判らない事が出来たのでお知恵を拝借できればと思います。 ここ何日か前から突然起きた現象で、「システムコールエラー」が出るようになりました。詳しい事は書いておらずただ「システムコールエラーです」とだけ出てきます。エラー窓の左上にアルファべトで「nl」とありますが、何が原因で出るのか、意味している事は何なのか不明です。エラーがでる直前の作業で変わった事はしていないと思うのですが、一度エラー窓が出現するとキリもなく出てきます。出始めに「OK」をクリックし続けると消えるのですが、放っておくと「ザン・ザン」と音が鳴りながら出まくるので再起動を余儀なくされます。 この現象を回避する方法がありましたらお知らせください。 当方のPCはWinXPで「Dell DIMWNTION3100C」です。 よろしくお願いします。

  • system関数でCシェルコマンドを実行した時のエラー抑制

    CシェルコマンドをPerl上でsystem関数を使用し実行した時の、 エラーメッセージ抑制について教えてください。 ディレクトリ(DIR1をDIR2に)をコピーする際、 下記のようにしました。 system("cp -r DIR1 DIR2"); ここでもし、なんらかの原因でコピー失敗した場合、 「DIR1がありません。」などと、エラーメッセージが出力されます。 Cシェルでこの様なエラーメッセージを抑制するには cp -r DIR1 DIR2 >& /dev/null と、 することによって、エラーメッセージの抑制は可能になります。 これと、同じ事をPerlで行いたいと思っています。 ご回答よろしくお願いします

  • Cシェルの制御文について(求むCシェル・マスター)

    Cシェルでとある処理をすることになり、参考資料としてスペシャリストな人の シェルをみせてもらったのですが、ソースを読むこともままなりません(><) 私自身はVisualStudioを使ってCのプログラミングをかなり前にちょろっとやった程度で、 シェルというものをほとんど組んだことがないので、以下の点を教えてください。 if [ほにゃらら] then コマンドをぽちっとな elif [はにゃらら] then コマンド2をぽちっとな else exit fi 上記のような制御文を参考資料の中で多数みるのですが、 "elif"と"fi"が、まったく何者かわかりません。 Cシェルやelifなどで、ぐぐってみましたが、わからず 誰か助けてぇ~って感じです。 また、シェルの勉強サイト(C,Tc,B,Bash)のサイトも ありましたら教えてください。すんませんが、よろしくお願いします。

  • cシェルについて(その1)

    質問です。 以下のように表記されている場合 @ XXXnum=0 XXXchk: @ XXXnum++ if ($XXXnum > 3 ) then goto XXXerror とある場合、XXXnumはふつうの変数(環境変数等ではなく) と考えてOKなのでしょうか? (@マークについてよく解らないもので) またCの様に(関数の)頭で宣言しなくて宜しいのでしょうか? また、XXXchk:とは関数のくくりで終わる場合単に、 end の表記だけでよいのでしょうか? (XXXchk:が関数の頭だとするとこれの中にも一つ同じ様な表記があって  endが一個しかないのも疑問なんですが) cシェルと言うよりシェル全般に関して初心者なんで、宜しくお願いいたします。

  • Ubuntuの端末におけるシステムコールの数え方

    こんばんは。 課題でcとJavaのコードを実行してstraceコマンドでその実行時のシステムコールを読み取るという課題をやっています。 Ubuntuの端末でcとJavaのコードをコンパイルし、straceコマンドを実行するとtracefileというのがでてきてそこにずらずらシステムコール(おそらく)が書いてあります。 ↓ こんな感じ。 3232 execve("./Noop", ["./Noop"], [/* 39 vars */]) = 0 3232 brk(0) = 0x98c6000 まずこれがシステムコールであっていますか?execveとかがそうですか? これが6000行くらいあります。 質問はこの中からresumedと書かれたラインを抜かした行数を数え(システムコールの数を数える)、さらにシステムコールの種類の数を数えたいのですがいい方法はありますでしょうか? 便利なコマンドとかあったら使い方とともに教えていただきたいです。 もし何か検討違いなことを言っていたら教えてください。 よろしくお願いします。

  • システムコールに失敗しました

    たま-になのですが、 アクセスで If WorksheetFunction.Or(ctl.ControlType = acComboBox, ctl.ControlType = acTextBox) Then の部分で、 実行時エラー -2147417856 オートメーションエラーです。 システムコールに失敗しました というエラーが発生します。 WorksheetFunction.Orをアクセスで使って言えるので、エクセルに参照設定をしています。 このエラーは発生する時としない時があるので、再現できないし、原因がわかりません。 「 システムコールに失敗しました」どういう意味のエラーなのでしょうか?

  • CYGWINやKNOPPIXを、BシェルからCシェルに変更したいです。

    お世話になっております。 疑問となっている事は以下の通りです。 (1)CygwinのプロンプトををBシェルからCシェルへ変更する手順。 (2)KnoppixのプロンプトををBシェルからCシェルへ変更する手順。 ということをしたいと思います。 (1)については、Cygwin.batの最後にあるbashをcshに変更したのですが、Cygwin自体が起動しなくなりました。 (2)については、どの様な設定をすればよいか全く解らない状態です。 どのような設定をすれば、Cシェルが扱えるようになるのでしょうか。 ご教授のほど、宜しくお願いします。

専門家に質問してみよう