سیستم عامل os
کار با پرونده، پوشه، فرمانهای سیستم، آرگومانهای برنامه و متغیرهای محیطی.
واردسازی سیستم عامل
بستهی سیستم عامل سادهترین راه برای کار با سیستم است: هر روال یک کار را انجام میدهد و بیشترشان مسیر پرونده یا پوشه را به شکل رشته میگیرند. روالهایی که چیزی را تغییر میدهند، مثل حذف و ساخت پوشه، در صورت موفقیت صفر برمیگردانند و در غیر این صورت عددی دیگر.
برای کارهای تخصصیتر زیربستههایی هم هست: فرآیند برای اجرای برنامههای دیگر، پوسته برای گرفتن خروجی فرمانها، سکو برای شناختن سیستم، و بستههای پرونده و پوشه که امکانات بیشتری دارند.
گونهها
اطلاعات پرونده FileInfo
ساختار اطلاعات پروندهوضعیت پرونده برمیگرداند.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| size | size | صحیح۶۴ = 0 | اندازهی پرونده بر حسب بایت. |
| is_dir | is_dir | منطقی = نادرست | اگر مسیر یک پوشه باشد، درست است. |
| exists | exists | منطقی = نادرست | اگر مسیر وجود داشته باشد، درست است. |
واردسازی سیستم عامل
روال ریشه:
سیستم عامل.نوشتن پرونده("یادداشت.txt"، "سطر نخست\n")
سیستم عامل.افزودن به پرونده("یادداشت.txt"، "سطر دوم\n")
چاپ سیستم عامل.خواندن پرونده("یادداشت.txt")
سرچاپ سیستم عامل.وجود دارد("یادداشت.txt")، سیستم عامل.اندازه پرونده("یادداشت.txt")
و۱ := سیستم عامل.وضعیت پرونده("یادداشت.txt")
سرچاپ و۱.exists، و۱.is_dir، و۱.size
سیستم عامل.کپی("یادداشت.txt"، "رونوشت.txt")
سیستم عامل.جابجایی("رونوشت.txt"، "نام تازه.txt")
سرچاپ سیستم عامل.وجود دارد("رونوشت.txt")، سیستم عامل.وجود دارد("نام تازه.txt")
سیستم عامل.حذف("نام تازه.txt")
سرچاپ سیستم عامل.وجود دارد("نام تازه.txt")
پ := سیستم عامل.بازکردن("یادداشت.txt"، "rb")
سرچاپ پ.خواندن خط()
پ.ببند()
پایاننتیجه فرمان CmdResult
ساختار نتیجه فرماناجرا با خروجی.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| code | code | صحیح = 0 | کد خروج فرمان؛ صفر یعنی موفق. |
| out | out | رشته = "" | خروجی فرمان. |
واردسازی سیستم عامل
روال ریشه:
کد := سیستم عامل.اجرا("echo از پوسته")
سرچاپ "کد خروج:", کد
ن := سیستم عامل.اجرا با خروجی("echo سلام")
سرچاپ ن.code، "[" + ن.out + "]"
سرچاپ "[" + سیستم عامل.خروجی فرمان("echo دنیا") + "]"
سرچاپ سیستم عامل.شناسه فرآیند() > ۰
پایانروالها
بازکردن Open
روال بازکردن(path: رشته، mode: رشته): پرونده*"rb" برای خواندن، "wb" برای نوشتن از نو و "ab" برای افزودن. اگر نشود، پوچ برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
خروج Exit
روال خروج(code: صحیح)ریشه بهجایش برگشت بنویسید، چون خروج، روالهای دیرکن را اجرا نمیکند (خطای E109).واردسازی سیستم عامل
روال خروج با خطا(پیام: رشته):
نادرستسرچاپ پیام
سیستم عامل.خروج(۲)
پایان
روال خرابی جدی():
سیستم عامل.توقف ناگهانی()
پایان
روال ریشه:
آرگها := سیستم عامل.آرگومان ها()
سرچاپ "تعداد آرگومانها:", آرگها.طول()
خانه := سیستم عامل.متغیر محیطی("HOME")
سرچاپ خانه.طول() > ۰ یا سیستم عامل.متغیر محیطی("USERPROFILE").طول() > ۰
اگر آرگها.طول() > ۱۰:
خروج با خطا("آرگومانها بیش از اندازهاند")
پایان
اگر آرگها.طول() > ۱۰۰:
خرابی جدی()
پایان
پایانتوقف ناگهانی Abort
روال توقف ناگهانی()نمونهی این مورد همراه با موارد بالاتر آمده است: os-Args.salam
آرگومان ها Args
روال آرگومان ها(): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: os-Args.salam
متغیر محیطی Env
روال متغیر محیطی(name: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: os-Args.salam
حذف Remove
روال حذف(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
ساخت پوشه Mkdir
روال ساخت پوشه(path: رشته): صحیحواردسازی سیستم عامل
روال ریشه:
سیستم عامل.ساخت پوشه("پروژه")
سیستم عامل.ساخت پوشه ها("پروژه/کد/کمکی")
سیستم عامل.نوشتن پرونده("پروژه/خوانا.txt"، "سلام")
سیستم عامل.نوشتن پرونده("پروژه/کد/اصلی.salam"، "روال ریشه: پایان")
سرچاپ سیستم عامل.پوشه است("پروژه")، سیستم عامل.پوشه است("پروژه/خوانا.txt")
سرچاپ سیستم عامل.فهرست پوشه("پروژه/کد").طول()، سیستم عامل.فهرست پوشه ها("پروژه")
سرچاپ سیستم عامل.پیمایش("پروژه").طول()
سیستم عامل.کپی درخت("پروژه"، "پشتیبان")
سرچاپ سیستم عامل.وجود دارد("پشتیبان/کد/اصلی.salam")
اصلی := سیستم عامل.پوشه جاری()
سیستم عامل.تغییر پوشه("پروژه")
سرچاپ سیستم عامل.وجود دارد("خوانا.txt")
سیستم عامل.تغییر پوشه(اصلی)
سیستم عامل.حذف پوشه("پروژه/کد/کمکی")
سیستم عامل.حذف همه("پروژه")
سیستم عامل.حذف همه("پشتیبان")
سرچاپ سیستم عامل.وجود دارد("پروژه")، سیستم عامل.پوشه موقت().طول() > ۰
پایانحذف پوشه Rmdir
روال حذف پوشه(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
کپی Copy
روال کپی(src: رشته، dst: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
جابجایی Move
روال جابجایی(src: رشته، dst: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
فهرست پوشه ListDir
روال فهرست پوشه(path: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
پوشه است IsDir
روال پوشه است(path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
پیمایش Walk
روال پیمایش(root: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
وجود دارد Exists
روال وجود دارد(path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
پوشه جاری Cwd
روال پوشه جاری(): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
تغییر پوشه Chdir
روال تغییر پوشه(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
پوشه موقت TempDir
روال پوشه موقت(): رشته/tmp.نمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
خواندن پرونده ReadFile
روال خواندن پرونده(path: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
نوشتن پرونده WriteFile
روال نوشتن پرونده(path: رشته، data: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
افزودن به پرونده AppendFile
روال افزودن به پرونده(path: رشته، data: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
اندازه پرونده FileSize
روال اندازه پرونده(path: رشته): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
وضعیت پرونده Stat
روال وضعیت پرونده(path: رشته): اطلاعات پروندهexists نادرست است.نمونهی این مورد همراه با موارد بالاتر آمده است: os-Files.salam
ساخت پوشه ها MkdirAll
روال ساخت پوشه ها(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
حذف همه RemoveAll
روال حذف همه(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
کپی درخت CopyTree
روال کپی درخت(src: رشته، dst: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
فهرست پوشه ها ListDirs
روال فهرست پوشه ها(path: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: os-Dirs.salam
اجرا Run
روال اجرا(cmd: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Run.salam
اجرا با خروجی RunCapture
روال اجرا با خروجی(cmd: رشته): نتیجه فرماننتیجه فرمان برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: os-Run.salam
خروجی فرمان Output
روال خروجی فرمان(cmd: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: os-Run.salam
شناسه فرآیند Pid
روال شناسه فرآیند(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: os-Run.salam