====== تابع ()getopt - تفسیر پارامترهای خط فرمان ======
از این تابع برای تشخیص سوئیچ هایی که در خط فرمان نوشته شده اند استفاده میشود.
#include
int getopt(int argc, char * const argv[], const char *optstring);
man 3 getopt
# _XOPEN_SOURCE
man 7 feature_test_macros
/* new-sum.c */
#define _XOPEN_SOURCE 500
#include
#include
#include
void printhelp(char progname[]);
int main(int argc, char *argv[])
{
int i, opt, sum;
/* Simple sanity check */
if (argc == 1)
{
printhelp(argv[0]);
return 1;
}
/* Parse command-line options */
while ((opt = getopt(argc, argv, "smh")) != -1)
{
switch (opt)
{
case 's': /* sum the integers */
sum = 0;
for (i=2; i
$ make new-sum
cc new-sum.c -o new-sum
$ ./new-sum
./new-sum [-s] [-m] integer ...
-s sums all the integers
-m multiplies all the integers
This program takes any number of integer values and either add or multiply them.
For example: ./new-sum -m 5 5 5
$ ./new-sum -s 5 5 5
Total: 15
$ ./new-sum -m 5 5 5
Total: 125