در برنامههای خط فرمان (Command Line)، یکی از روشهای مرسوم و کارآمد برای ارسال و دریافت اطلاعات، استفاده از کانالهای ورودی و خروجی استاندارد یا همان STDIN و STDOUT است. این روش، امکان تعامل ساده و موثر با برنامهها را فراهم میکند.

STDIN
STDIN که مخفف Standard Input است، به هر برنامهای اجازه میدهد تا ورودیهای دریافتی خود را از یک منبع مشخص بگیرد. این ورودی میتواند صفحه کلید، فایل یا حتی خروجی یک برنامه دیگر باشد. STDIN به آدرس شماره ۰ اختصاص داده شده است، به این معنی که وقتی دادهای شما به برنامه ارسال میشود، از این مسیر عبور میکند.
STDOUT
از سوی دیگر، STDOUT که مخفف Standard Output است، مسئول ارسال خروجیها و نتایج پردازشهای برنامه به مقصدی مانند صفحه نمایش، فایل یا برنامهای دیگر است. STDOUT به آدرس شماره ۱ تعلق دارد و معمولا به عنوان جریان خروجی اصلی شناخته میشود.
مثال عملی
برای درک بهتر، نرمافزار mozjpegtran را مثال میزنیم که برای فشردهسازی تصاویر با فرمت JPG استفاده میشود.
این برنامه دادههای ورودی خود را از STDIN میگیرد و خروجی پردازش شده را از طریق STDOUT ارسال میکند. در دستور زیر:
mozjpegtran.exe > "output.jpg" < "input.jpg"
علامت > بیانگر این است که برنامه ورودی خود را از فایل "input.jpg" دریافت میکند (ورودی استاندارد یا STDIN)، و علامت < نشان میدهد که خروجی نهایی برنامه در فایل "output.jpg" ذخیره شود.
با این روش میتوان دادهها را به راحتی از یک برنامه به برنامهای دیگر منتقل کرد یا آنها را ذخیره و بازیابی نمود. استفاده از STDIN و STDOUT در توسعه اسکریپتها و اتوماسیونهای سیستم اهمیت زیادی دارد، زیرا امکان پردازشهای زنجیرهای و موازی را بدون نیاز به فایلهای واسط فراهم میکند.
