กำหนดให้แสดงการทำงานของ system() ใน C/C++
ฟังก์ชัน system() เป็นส่วนหนึ่งของไลบรารีมาตรฐาน C/C++ ใช้สำหรับส่งคำสั่งที่สามารถดำเนินการในตัวประมวลผลคำสั่งหรือเทอร์มินัลของระบบปฏิบัติการ และสุดท้ายจะส่งคืนคำสั่งหลังจากเสร็จสิ้น
ควรรวม
ไวยากรณ์
ไวยากรณ์มีดังนี้ −
int system(char command)
ฟังก์ชันนี้จะคืนค่าศูนย์หากดำเนินการคำสั่งโดยไม่มีข้อผิดพลาด
ตัวอย่าง
Input: system(“date”) Output: The current date is: Fri 12/27/2019
คำอธิบาย − ตัวอย่างต่อไปนี้แสดงให้เห็นว่าเราสามารถใช้ฟังก์ชันระบบเพื่อแสดงวันที่ปัจจุบันได้อย่างไร เอาต์พุตจะแสดงอยู่ภายในตัวประมวลผลคำสั่งของระบบปฏิบัติการ นี่แสดงให้เห็นว่าเราสามารถใช้ฟังก์ชัน system() เพื่อรันคำสั่งเทอร์มินัลหรือคำสั่งที่ใช้ในตัวประมวลผลคำสั่งได้อย่างไร
ตัวอย่าง
Input: system(“color a”) Output:
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าเราสามารถใช้ฟังก์ชัน system() ได้อย่างไรโดยเพียงแค่ส่งสตริงเข้าไปซึ่งมีคำสั่งที่จะดำเนินการ ในที่นี้เราได้ให้คำสั่ง “color a” ที่ใช้ในการเปลี่ยนสีของข้อความในตัวประมวลผลคำสั่งและทำงานได้อย่างถูกต้อง
แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้ −
- ขั้นแรกให้สร้างตัวแปรประเภท char และกำหนดขนาดที่เหมาะสม สมมติว่า cmd[10] เพื่อให้สตริงนี้ใช้สำหรับจัดเก็บคำสั่งได้
- จากนั้นใช้ฟังก์ชัน strcpy() เพื่อจัดเก็บคำสั่งที่ต้องการลงในสตริงที่เราสร้างไว้ก่อนหน้านี้ (รวมถึงไฟล์ส่วนหัว
เพื่อใช้ฟังก์ชัน strcpy()) - ตอนนี้ส่งสตริงที่จัดเก็บคำสั่งไปยังฟังก์ชันของระบบ
อัลกอริทึม
Start Step 1-> In function main() Declare a char cmd[10] Call function strcpy(cmd, “dir”) Call function system(cmd) Stop
ตัวอย่าง
#include <iostream> #include<stdlib.h> #include<string.h> using namespace std; int main() { char cmd[10]; strcpy(cmd,"dir"); system(cmd); return0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
12/25/2019 10:04 AM <DIR> . 12/25/2019 06:33 AM <DIR> .. 12/24/2019 09:56 AM <DIR> bin 12/25/2019 10:04 AM 183 main.cpp 12/25/2019 10:04 AM 1,564,278 main.exe 12/25/2019 06:33 AM 1,046 main.o 12/24/2019 06:33 AM <DIR> obj 12/24/2019 06:33 AM 1,062 Test.cbp 12/24/2019 06:36 AM 358 Test.layout 5 File<s> 1,566,927 bytes 4 Dir<s> 169,866,692,120 bytes free
ที่นี่เราได้ให้คำสั่งฟังก์ชันระบบ "dir" เป็นอินพุต ดังนั้นในทางกลับกัน จะแสดงไดเร็กทอรีทั้งหมดที่มีอยู่ในคอมพิวเตอร์เป็นเอาต์พุต
สามารถใช้วิธีการต่อไปนี้เพื่อตรวจสอบว่าตัวประมวลผลคำสั่งมีอยู่ในระบบปฏิบัติการหรือไม่ −
ซึ่งสามารถทำได้โดยส่งตัวชี้ Null ไปที่ฟังก์ชัน system() หากระบบคืนค่าที่ไม่ใช่ศูนย์ แสดงว่าตัวประมวลผลคำสั่งพร้อมใช้งาน
มิฉะนั้น หากระบบคืนค่าศูนย์ แสดงว่าไม่มีตัวประมวลผลคำสั่งและฟังก์ชัน system() ไม่สามารถเรียกได้
ตัวอย่าง
#include <iostream> #include<stdlib.h> using namespace std; int main() { if(system(Null)) cout<<”Command Processor is present”; else cout<<”Command processor is not present”; return 0; }