アセンブラでシステムコールを呼び出したいのですが、
Linuxとかだとシステムコールの一覧みたいのが載ってるのですが、
Windowsのシステムコールの一覧みたいのが見つかりません。

一覧が載っているようなサイトってありませんか??
とりあえずLinuxの11番(C言語で言うexecv関数)みたいのが使いたいのですが。。。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

MS-DOSシステム割り込みの一覧です。



参考までに、どうぞ。

Ralf Brown's Files
http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/f …

Ralf Brown's Interrupt List
http://www.delorie.com/djgpp/doc/rbinter/
    • good
    • 0

Windowsではシステムコールを直接呼び出すことはしません (ドライバ系でRing-0プログラムなら別かもしれませんが)。



で,Windowsで使うAPIの一覧を調べたいのであれば,MSDNに載っています。
例えば,Win32サブシステムのAPIであれば,
http://msdn.microsoft.com/en-us/library/aa139672 …
から探すことができますし,DirectXのAPIであれば,
http://msdn.microsoft.com/en-us/library/cc440757 …
から探すことができます。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMac OS Xでのシステム・コール

Mac OS XのXcodeでC言語を書いているのですが、入出力にreadやwriteのシステム・コールを使いたいのですが、インクルードの仕方が分かりません。(多分、システム・コール用の関数プロトタイプを集めたヘッダー・ファイルをインクルードすることになると思うのですが?)

どなたか御経験のある方、御教示願えればと思います。

Aベストアンサー

システムコールを使うなら、Unixのシステムコールを解説している本とかサイトとかを探しましょう。

システムコールは、ターミナルからのmanコマンドでマニュアルを読むことができます。
manコマンドの使い方を覚えましょう。

システムコールは第2章にあるので
man 2 知りたいシステムコール
で読むことができます。

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man2/read.2.html

Qマルチバイブレータについて

各マルチバイブレータについてのご質問になりますが、非(無)安定マルチバイブレータ、単マルチバイブレータ、双安定マルチバイブレータの、各それぞれの応用例を、教えてくださいm(__)m。
どういったものに使用されているのか教えてください。
是非お願いいたしますm(__)m。

Aベストアンサー

こんにちは。
非安定マルチ→発振回路、分周回路

  あまり高い安定度を必要としない周波数源として使われる事が多いよう
  です。またベース(ゲート)回路に発振周波数の整数倍の周波数を入力
  すると入力信号に同期した整数分の一の方形波を取り出す事ができます。

単安定マルチ→トリガパルス整形回路を動作させる信号をアナログ信号から
  パルスを作るチャタリング防止接点などの振動で細かい沢山のパルスが
  発生したとき、単安定マルチの時定数以下の細かいチャタリングパルス
  をキャンセルできる。

双安定マルチ→計数回路、分周回路、記憶回路、方形波への波形整形
  コンピューターで一番使われてる回路はこれでしょうね。

こんなところでいかがでしょうか。

Qシステムコールと標準ライブラリの正しい使い方を教えて下さい

システムコールって何でしょうか。
C言語初心者なので、変な質問だったら、すみません。

システムコールと標準ライブラリにおける、関数の違いを教えて頂けませんでしょうか。
例えばファイル入出力で用いる
openとfopenは何が違うのでしょうか?
私はそもそも、システムコールというものが判っていない状態です。
いつも標準ライブラリを参考にしていたものですから・・。

更に似た使い方をすると思いますが、使える範囲等どちらが広いのでしょうか。

よろしくお願いします。

Aベストアンサー

システムコールは本来はOSが提供する機能をほぼそのまま呼び出すものです。OSによっては呼び方が違うこともあります(スーパバイザコールとか)
ほぼ、と書いたのは実際には各言語から直接呼び出せるとは限らないからです。
だいたいはアセンブラレベルで定義されてます。

OSの機能そのままなので、OSによっては全く違いますし、該当する機能がない場合もあります。

openは本来 unix系のOSが提供する機能そのものです。
ですので、同じunix系であっても細かい違いがあります。
MS-DOS等でもopenはありますが、これは本来システムコールではなく、unix系OSのシステムコール互換ライブラリになります。

これに対して fopenはC言語レベルで共通に使えるように作られたサブルーチンで、
基本的にOS等に依存しないで使えるように作られたものです。
中身は勿論OSによって違ってきますが、使い方はほぼ同じです。
厳密にはパラメタの内容に違いがありますし、
動きもOSに依存する違いが出てくる場合もありますが。

C言語で書く場合は標準ライブラリのみ使用していると、OS等が違ってもほぼそのまま動くプログラムを書くことができますが、
システムコールを使った場合はまずOSが異なった場合は、
たいていなんらかの書き換えが必要になります。
但し、標準ライブラリだと共通に使うことが目的なため、用途によっては機能的に足らない場合もあります。

単純に使える範囲では標準ライブラリの方が広いですね。
機能としては似ている物もありますが、通常は使い方は区別する方がいいですね。

特に問題、不自由なければ標準ライブラリを使うことをおすすめします。
プログラムいろいろ作っていくとシステムコールでなければできない場合がありますから、
システムコールはその時に使えばいいでしょう。

例えば私はWindowsのプログラムを書く場合でも、通常 fopen等を使いますが、
必要な場合はFileCreate等(WIN32API,システムコールと同等)を使います。

システムコールは本来はOSが提供する機能をほぼそのまま呼び出すものです。OSによっては呼び方が違うこともあります(スーパバイザコールとか)
ほぼ、と書いたのは実際には各言語から直接呼び出せるとは限らないからです。
だいたいはアセンブラレベルで定義されてます。

OSの機能そのままなので、OSによっては全く違いますし、該当する機能がない場合もあります。

openは本来 unix系のOSが提供する機能そのものです。
ですので、同じunix系であっても細かい違いがあります。
MS-DOS等でもopenはあります...続きを読む

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

Qprintfなど、標準関数のソースコードが知りたい

C言語、Linux初心者です。
タイトルの通り、printf, scanfなどの関数のソースコードや、main関数の呼出し部分のソースコードを見てみたいのですが、どこにあるのでしょうか。類似質問で
http://www.gnu.org/home.ja.html
から探せるとの回答がありましたが、出来ればもう少し具体的にお願いします。
RedHat Linux 7.3、gcc version 2.96を使っています。

Aベストアンサー

Linuxで用いられる「GNU Cライブラリ」(libc、glibc)はこちらです。http://www.gnu.org/software/libc/libc.html
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/?cvsroot=glibc
例えばprintfは、この中の「stdio」という部分に含まれます。
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdio/Attic/?cvsroot=glibc
リストの中の改訂番号(Rev.)をクリックすればソースが見られます。

mainの呼び出し部分については残念ながら詳しくありません。

参考URL:http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdio/Attic/?cvsroot=glibc

Qディレクトリ内に作成できる最大ファイル数

Windows2000サーバでNTFSファイル システムを使用しています。
FAT16やFAT32では上限があるようですが、NTFSにはそのような情報が見つかりません。
理論的にも上限はないのでしょうか。

Aベストアンサー

NTFSは、ルートディレクトリ、サブディレクトリ共に、制限は無いようです。

フォーマットの種類 ルートディレクトリの制限数 サブディレクトリの制限数
NTFS               :制限無し           制限無し
FAT16              :512             65534
FAT32              :65536            65534

『Microsoft サポートオンライン:W98:FAT16、FAT32 でディレクトリ内に作成できる最大ファイル数』
http://support.microsoft.com/default.aspx?scid=kb;ja;436213

↓のFAT16、FAT32の所が、↑と違いますが・・・。

『Windowsのファイルシステム表』
http://www2s.biglobe.ne.jp/~system/doc/winfile.htm

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;436213,http://www2s.biglobe.ne.jp/~system/doc/winfile.htm

NTFSは、ルートディレクトリ、サブディレクトリ共に、制限は無いようです。

フォーマットの種類 ルートディレクトリの制限数 サブディレクトリの制限数
NTFS               :制限無し           制限無し
FAT16              :512             65534
FAT32              :65536            65534

『Microsoft サポートオンライン:W98:FAT16、FAT32 でディレクトリ内に作成できる最大ファイル数』
http://support....続きを読む

Qセマフォとmutexの違いは?

排他制御としてセマフォとmutexがありますが、
この二つの違いがよくわかりません。
自分で調べてみたところ、
・セマフォ…プロセス間排他制御。複数ロックがかけられる。
・mutex…スレッド間排他制御。ロックは一つだけ。

と言うような違いがあるようなのですが、これだけの差なんでしょうか?
(これだけの差、と言ってる時点で筋違いだったら申し訳ありません)
また、セマフォをスレッド間排他制御に用いたり、
mutexをプロセス間排他制御に用いることは可能なのでしょうか?
可能だとしたら、これらが2種類存在する理由も教えていただきたいです。

Aベストアンサー

> >一般論としては、Mutexは「カウントを1に限定した」特殊化したSemaphoreです。
> とのことですが、これはWin32以外の環境だと
> これ以上の違いはないと言うことでしょうか?

「一般論」と書いた意味を取り落とされているのではないかと思います。

「一般論としては〇〇」なのですから、「Win32以外の環境」も含めて「各論」では「必ずしも〇〇とは限らない」とご理解ください。

なお、ご指摘のとおり、あるリソースを排他的に利用するだけであればMutexを使用するかわりにカウントが1のSemaphoreを使用することができます。(特定の環境での、MutexとSemaphoreの環境依存の動作を除けば、ですが。)

ではなぜ2種類が用意されている(用意されている環境が存在する)のかといえば、リソースの排他的利用は非常によくあることなので、これに特化した機能を用意すればより良いであろう、というシステムデザイナの判断によるものと考えられます。

ここで言う「より良い」は、あるデザイナにとっては「便利性」、また別のデザイナにとっては「消費リソースが少ない」と、これまた考え方はいろいろでしょう。

> >一般論としては、Mutexは「カウントを1に限定した」特殊化したSemaphoreです。
> とのことですが、これはWin32以外の環境だと
> これ以上の違いはないと言うことでしょうか?

「一般論」と書いた意味を取り落とされているのではないかと思います。

「一般論としては〇〇」なのですから、「Win32以外の環境」も含めて「各論」では「必ずしも〇〇とは限らない」とご理解ください。

なお、ご指摘のとおり、あるリソースを排他的に利用するだけであればMutexを使用するかわりにカウントが1のSemaphore...続きを読む

QをVisualStudioでつかえるようにする

<unistd.h>をVisualStudioでつかえるようにしたいのですが、問題なくコンパイルできるようにするにはどうしたらいいでしょうか?

CygwinというやつをインストールしてやってみたのですがやはりVisualStudioだけでコンパイルしてやりたいのですが。。。。

Aベストアンサー

おそらく<unistd.h>をフルスペックで利用したいわけではないと思います。その中の一部の関数を使いたいだけなら<io.h>などで代用できるはずですから、ヘルプで調べてみることをお勧めします。

ソースを修正せずに、コンパイル&実行ができるようにすることは諦めた方がよいと思います。

移植のことを考えるなら、<unistd.h>とか<windows.h>のような環境に特化したヘッダや、そこで宣言される型や関数などを直接使うのではなく、適切にラッピングしてから使う方が後々楽です。今回は仕方ないでしょうが、今後はそうしましょう。

Qフォルダ名長さの上限

Windows XPのころはフォルダおよびファイル名の上限が255文字でしたが、
Windows 7 64bitではこの上限は解消されたのでしょうか?


検索してもなぜか情報が見つからなかったので
よろしくお願い致します。

Aベストアンサー

NTFSの内部構造はマイクロソフトからは公開されていませんが、第三者のドキュメントによると名前の長さを示すフィールドは1バイトしかないようです。従って255文字が限界となります。またVFATの長いファイル名も255文字までです。
WindowsがNTFS/FAT以外のファイルシステムを採用するか、大幅な仕様変更がない限りはファイル名は255文字が限界のまま変わらないでしょう。
なお、パス長に関してはUnicode文字のWindows APIでは32767文字まで対応するようです。ファイルシステムが対応すればファイル名長の拡大は可能でしょう。ただし未だにMAX_PATH=260に縛られるアプリケーションも多いようですので、たとえファイル名長を拡大しても対応が進むのには時間が掛かると思われます。

Q今度は拡張子「lst」・・・・(前回はeoについて質問)

えー、前にもおなじような質問したんですけど、拡張子「lst」のファイルが開けられなくて困っております。
もし、この拡張子の解凍ファイルの場所を知っている方。どうか教えてください!
(つまらない質問ですいません)

Aベストアンサー

IriaかIrvineかFlashGetかReGetかな。
URLがずらーっと並んだファイルです、たぶん。

解凍する必要はありません。ファイルメニューから「読み込む」などを選択すると分割されていたりするファイルをダウンロードするようにダウンローダーに命令できるファイルだと思われます。
他のダウンロード支援ソフトでも使われているかもしれませんね。
一例が参考URLに。

参考URL:http://www.vector.co.jp/soft/win95/net/se161790.html


人気Q&Aランキング

おすすめ情報