کتابخانه‌ی استاندارد · سیستم و ابزار

سیستم عامل os

کار با پرونده، پوشه، فرمان‌های سیستم، آرگومان‌های برنامه و متغیرهای محیطی.

واردسازی سیستم عامل
در این صفحه
  1. گونه‌ها
  2. روال‌ها

بسته‌ی سیستم عامل ساده‌ترین راه برای کار با سیستم است: هر روال یک کار را انجام می‌دهد و بیشترشان مسیر پرونده یا پوشه را به شکل رشته می‌گیرند. روال‌هایی که چیزی را تغییر می‌دهند، مثل حذف و ساخت پوشه، در صورت موفقیت صفر برمی‌گردانند و در غیر این صورت عددی دیگر.

برای کارهای تخصصی‌تر زیربسته‌هایی هم هست: فرآیند برای اجرای برنامه‌های دیگر، پوسته برای گرفتن خروجی فرمان‌ها، سکو برای شناختن سیستم، و بسته‌های پرونده و پوشه که امکانات بیشتری دارند.

گونه‌ها

اطلاعات پرونده FileInfo

ساختار اطلاعات پرونده
اطلاعاتی که وضعیت پرونده برمی‌گرداند.
نامانگلیسیگونهتوضیح
sizesizeصحیح۶۴ = 0اندازه‌ی پرونده بر حسب بایت.
is_diris_dirمنطقی = نادرستاگر مسیر یک پوشه باشد، درست است.
existsexistsمنطقی = نادرستاگر مسیر وجود داشته باشد، درست است.
os-Files.salam
واردسازی سیستم عامل

روال ریشه:
    سیستم عامل.نوشتن پرونده("یادداشت.txt"، "سطر نخست\n")
    سیستم عامل.افزودن به پرونده("یادداشت.txt"، "سطر دوم\n")
    چاپ سیستم عامل.خواندن پرونده("یادداشت.txt")
    سرچاپ سیستم عامل.وجود دارد("یادداشت.txt")، سیستم عامل.اندازه پرونده("یادداشت.txt")
    و۱ := سیستم عامل.وضعیت پرونده("یادداشت.txt")
    سرچاپ و۱.exists، و۱.is_dir، و۱.size
    سیستم عامل.کپی("یادداشت.txt"، "رونوشت.txt")
    سیستم عامل.جابجایی("رونوشت.txt"، "نام تازه.txt")
    سرچاپ سیستم عامل.وجود دارد("رونوشت.txt")، سیستم عامل.وجود دارد("نام تازه.txt")
    سیستم عامل.حذف("نام تازه.txt")
    سرچاپ سیستم عامل.وجود دارد("نام تازه.txt")
    پ := سیستم عامل.بازکردن("یادداشت.txt"، "rb")
    سرچاپ پ.خواندن خط()
    پ.ببند()
پایان
خروجیسطر نخست سطر دوم true 30 true false 30 false true false سطر نخست

نتیجه فرمان CmdResult

ساختار نتیجه فرمان
نتیجه‌ی اجرای یک فرمان با اجرا با خروجی.
نامانگلیسیگونهتوضیح
codecodeصحیح = 0کد خروج فرمان؛ صفر یعنی موفق.
outoutرشته = ""خروجی فرمان.
os-Run.salam
واردسازی سیستم عامل

روال ریشه:
    کد := سیستم عامل.اجرا("echo از پوسته")
    سرچاپ "کد خروج:", کد
    ن := سیستم عامل.اجرا با خروجی("echo سلام")
    سرچاپ ن.code، "[" + ن.out + "]"
    سرچاپ "[" + سیستم عامل.خروجی فرمان("echo دنیا") + "]"
    سرچاپ سیستم عامل.شناسه فرآیند() > ۰
پایان
خروجیاز پوسته کد خروج: 0 0 [سلام ] [دنیا ] true

روال‌ها

بازکردن Open

روال بازکردن(path: رشته، mode: رشته): پرونده*
پرونده را با حالت داده‌شده باز می‌کند: "rb" برای خواندن، "wb" برای نوشتن از نو و "ab" برای افزودن. اگر نشود، پوچ برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-Files.salam

خروج Exit

روال خروج(code: صحیح)
برنامه را با کد داده‌شده فوراً تمام می‌کند. در ریشه به‌جایش برگشت بنویسید، چون خروج، روال‌های دیرکن را اجرا نمی‌کند (خطای E109).
os-Args.salam
واردسازی سیستم عامل

روال خروج با خطا(پیام: رشته):
    نادرست‌سرچاپ پیام
    سیستم عامل.خروج(۲)
پایان

روال خرابی جدی():
    سیستم عامل.توقف ناگهانی()
پایان

روال ریشه:
    آرگ‌ها := سیستم عامل.آرگومان ها()
    سرچاپ "تعداد آرگومان‌ها:", آرگ‌ها.طول()
    خانه := سیستم عامل.متغیر محیطی("HOME")
    سرچاپ خانه.طول() > ۰ یا سیستم عامل.متغیر محیطی("USERPROFILE").طول() > ۰
    اگر آرگ‌ها.طول() > ۱۰:
        خروج با خطا("آرگومان‌ها بیش از اندازه‌اند")
    پایان
    اگر آرگ‌ها.طول() > ۱۰۰:
        خرابی جدی()
    پایان
پایان
خروجیتعداد آرگومان‌ها: 1 true

توقف ناگهانی Abort

روال توقف ناگهانی()
برنامه را ناگهانی و با خطا متوقف می‌کند؛ برای وضعیتی که هیچ راه ادامه‌ای نمانده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-Args.salam

آرگومان ها Args

روال آرگومان ها(): وکتور<رشته>
آرگومان‌های خط فرمان برنامه؛ عضو صفر، نام خود برنامه است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-Args.salam

متغیر محیطی Env

روال متغیر محیطی(name: رشته): رشته
مقدار یک متغیر محیطی، یا رشته‌ی تهی اگر تعریف نشده باشد. بسته‌ی محیط امکانات بیشتری دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-Args.salam

حذف Remove

روال حذف(path: رشته): صحیح
یک پرونده را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-Files.salam

ساخت پوشه Mkdir

روال ساخت پوشه(path: رشته): صحیح
یک پوشه می‌سازد؛ پوشه‌ی والد باید از قبل باشد.
os-Dirs.salam
واردسازی سیستم عامل

روال ریشه:
    سیستم عامل.ساخت پوشه("پروژه")
    سیستم عامل.ساخت پوشه ها("پروژه/کد/کمکی")
    سیستم عامل.نوشتن پرونده("پروژه/خوانا.txt"، "سلام")
    سیستم عامل.نوشتن پرونده("پروژه/کد/اصلی.salam"، "روال ریشه: پایان")
    سرچاپ سیستم عامل.پوشه است("پروژه")، سیستم عامل.پوشه است("پروژه/خوانا.txt")
    سرچاپ سیستم عامل.فهرست پوشه("پروژه/کد").طول()، سیستم عامل.فهرست پوشه ها("پروژه")
    سرچاپ سیستم عامل.پیمایش("پروژه").طول()
    سیستم عامل.کپی درخت("پروژه"، "پشتیبان")
    سرچاپ سیستم عامل.وجود دارد("پشتیبان/کد/اصلی.salam")
    اصلی := سیستم عامل.پوشه جاری()
    سیستم عامل.تغییر پوشه("پروژه")
    سرچاپ سیستم عامل.وجود دارد("خوانا.txt")
    سیستم عامل.تغییر پوشه(اصلی)
    سیستم عامل.حذف پوشه("پروژه/کد/کمکی")
    سیستم عامل.حذف همه("پروژه")
    سیستم عامل.حذف همه("پشتیبان")
    سرچاپ سیستم عامل.وجود دارد("پروژه")، سیستم عامل.پوشه موقت().طول() > ۰
پایان
خروجیtrue false 2 ["کد"] 2 true true false true

حذف پوشه 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