SystemCallで知るのである。OSの仕組みを知る手がかりを得るのである。どーたら・こーたらなのである。
レジスタに値を設定し、CPUの特権レベルを変更し、割り込みで処理に飛ぶ。基本はそこらしい。SystemCallの説明としては次のような構成だ。
#include いろいろ必要なもの
int main(){
各種変数定義 ; //型名とかは構造体にあるらしい
if(何らかのシステムコール() < 0){
perror(“何らかのシステムコール”);
return 1 ; // エラーならやーーめたっと
}
// エラーなしなので 何らかの処理を書く
何らかの処理 ;
return 0;
}
このような構成で一つのSystemCallの例題が書かれている。この本は出版社サイトから例題をdownloadできるサービスがないので写経ですね。敬虔なクリック教徒のワタクシにはひっどいわあ(笑)
てなわけで、なるほどなあ。cp, mkdir, touch等のコマンドは結局はSystemCall使って実現できいるのかあぁぁぁ(全部ではないが)
ということは理解した。そして、本のたくさんの例題はほとんど写経して動作を見た。DELL OPTIPLEX 7010SFF Win 11 23H2(非推奨PC)の WSL2 でのUbuntuのBashで。
そしてCの標準ライブラリも結局はSystemCallを使っているのであればコードを見てみるかいな・・・・と思って
#include <stdio.h> だぜ。その stdio.h を探して秀丸で開いてビックラこんこん!!
MinGW傘下の stdio.h だがな。きっと printfとか scanf とかあるだろさ~。 1100行ぐらいですなあ。。。。わっはっは。 読めるかパカタレ!
というわけで ワタクシには太刀打ちできませぬであーーーーた(´・ω・`)
#ifndef __USE_MINGW_FSEEK
/* If this option has been selected, an alternative emulation for _fseeki64()
* is provided later, to ensure that the call is wrapped in a MinGW specific
* fseek() handling API.
*/
int __cdecl __MINGW_NOTHROW __mingw_fseeki64 (FILE *, __int64, int);
__CRT_ALIAS __cdecl __MINGW_NOTHROW int _fseeki64 (FILE *__f, __int64 __o, int __w)
{ return __mingw_fseeki64 (__f, __o, __w); }
#endif
こんな感じのがズラズラズラズラズラズラ・・・・・・やつの頭は ずら (笑)
アンダースコアが2つ続くってのは意味があるのだろか。特別の。
Ψ ですう。
つまり、お手上げ ですわ。どこでSYstemCall使っているのかもワカラン。ま~こんなレベルだわす。
浅学非才!! 不勉強が身に染みる ------ 自らの愚脳をいつの日か克服したいものである。どや。
posted by toinohni at 09:34| 東京 ☁|
Comment(0)
|
ソフト系雑学
|
|