C/C++ מדריכי
C הקדמה לתכנות ב
C++ הקדמה להיררכית מחלקות ב הצגה מזורזת :C++ הבנת דף הבית

שיעור 15: ארגומנטים בשורת הפקודה

C ב UNIX מספקת מנגנון פשוט למדי לשימוש בפרמטרים שמוכנסים על ידי המשתמש בשורת הפקודה. היא מעבירה פרמטר argv לפונקצית ה main של התוכנית. מבני argv מופיעים במספר ממוצע של קריאות הספרייה המתקדמות יותר, לכן מן הראוי שתבין אותם.

הכנס את הקוד הבא והדר אותו ל a.out:

#include <stdio.h> 
 
void main(int argc, char *argv[])  
{    
    int x; 
 
    printf("%d\n",argc);    
    for (x=0; x<argc; x++)      
        printf("%s\n",argv[x]);  
} 

בקוד זה, פונקצית ה main מקבלת שני פרמטרים, argv, ו argc. הפרמטר argv הנו מערך של מצביעים למחרוזות שמכיל את הפרמטרים שהוכנסו כאשר התוכנית הופעלה בשורת הפקודה של UNIX. המספר השלם argc מכיל ספירה של מספר הפרמטרים. קטע קוד ספציפי זה מדפיס את הפרמטרים של שורת הפקודה. כדי לנסות זאת, הדר את הקוד ל a.out והקש a.out xxx yyy zzz. הקוד ידפיס את הפרמטרים, אחד בכל שורה.

השורה char *argv[] היא מערך של מצביעים למחרוזות. במילים אחרות, כל אלמנט במערך הנו מצביע, וכל מצביע מצביע למחרוזת (טכנית, לתו הראשון של מחרוזת). כך, argv[0] מצביע למחרוזת שמכילה את הפרמטר הראשון בשורת הפקודה (שם התוכנית), argv[1] מצביע לפרמטר הבא, וכן הלאה. המשתנה argc אומר לך כמה מהמצביעים במערך תקפים. תמצא שהקוד הקודם לא עושה דבר מעבר להדפסת כל המחרוזות התקפות שאליהן מוצבע ב argv.

כיוון ש argv קיים, ניתן לתת לתוכנית להגיב לפרמטרים שמוכנסים על ידי המשתמש בשורת הפקודה די בקלות. לדוגמא, ייתכן שתרצה שהתוכנית שלך תזהה את המילה help כפרמטר הראשון אחרי שם התוכנית, ותשליך קובץ עזרה ל stdout. ניתן גם להעביר כך שמות קבצים ולהשתמש בהם בפקודות ה fopen.




לדף הראשון

<< לדף הקודם

לדף הבא >>