Sponsored Content
Top Forums Programming Value printed by gdb does not consist with the right value Post 302565131 by 915086731 on Monday 17th of October 2011 04:20:54 AM
Old 10-17-2011
Value printed by gdb does not consist with the right value

Hello, I find the value printed by gdb does not consist with the right value.The following is the output.
Code:
(gdb) 
7	    while ( ( optc = getopt(argc, argv, ":b:B:h" ) ) != -1 ) {
(gdb) 
8	        printf( "%c    %d    %s\n", optc, optind, optarg);
(gdb) 
B    5    1-2
7	    while ( ( optc = getopt(argc, argv, ":b:B:h" ) ) != -1 ) {
(gdb) p optind
$1 = 1
(gdb)

The optind printed on stdout is 5, however, it is 1 printed by gdb. What,s wrong?
my source file is:
Code:
#include <stdio.h>
#include <getopt.h>
void main( int argc, char** argv) {
    int i = 0;
    char optc = 0;
    i = 1;
    while ( ( optc = getopt(argc, argv, ":b:B:h" ) ) != -1 ) {
        printf( "%c    %d    %s\n", optc, optind, optarg);
    }

   if (optind < argc) {
       printf("non-option ARGV-elements: ");
       while (optind < argc)
           printf("%s ", argv[optind++]);
       printf("\n");
   }

}

Thanks!
 

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

lp - order of files printed

I have a shell script that is looping through a list of Postscript files to print. ls -1tr *.PS > print.lst ... PRINT_LIST=`cat print.lst` ... for DMFILE in $PRINT_LIST do lp -d $PRINTER_NAME -o legal $DMFILE ... done The files in print.lst are in the order that they should be... (2 Replies)
Discussion started by: mabrownawa
2 Replies

2. UNIX for Dummies Questions & Answers

How to exclude files from printed results

Hello I have application that part of its command I can get list of files to the stout . with the path . like : ./blah/blah/foo.c ./blah11/blah11/foo11.c ./blah12/blah12/foo11.h now I will like to filter this result and for instance see the "*.h" file or the "*.c" file or only the files... (2 Replies)
Discussion started by: umen
2 Replies

3. UNIX for Dummies Questions & Answers

how to check if a string consist of any space?

hi all how do i check if a string consist of any space by using shell script. i have the following code while test -z $string do //prompting for another string if string is length 0 done when i type "a b" it give me an error test: a: binary operator expected thanks (7 Replies)
Discussion started by: yang
7 Replies

4. UNIX for Dummies Questions & Answers

Messages printed in the shell

Hi, I would like to be able to return to the messages printed in the shell when a process is done, but I have no idea where to look for them. Done nohup script.sh (wd: ~/somesubdir) Can anyone give me a hint? Are these messages printed by bash? They're definitely not... (7 Replies)
Discussion started by: mregine
7 Replies

5. Shell Programming and Scripting

Need to build Shell Script to search content of a text file into a folder consist several files

Have to read one file say sourcefile containing several words and having another folder containing several files. Now read the first word of Sourcefile & search it into the folder consisting sevral files, and create another file with result. We hhave to pick the filename of the file in which... (3 Replies)
Discussion started by: mukesh.baranwal
3 Replies

6. Shell Programming and Scripting

Need to limit the status printed

Hi, I have the data set as below, 0221500612134|Nutro 30-35 lb. Dry Dg 3 of 10 08/29/13~ 0221503074850|Nutro 30-35 lb. Dry Dg 1 of 10 09/23/13~ 0221503499660|Blue Buff 24-30lb Dog F 1 of 10 02/26/13~ 0221503499660|Iams 15.5-20lb Dog Food 2 of 10 11/12/12~ 0221503499660|Nat Blnc 25-35lb Dog... (1 Reply)
Discussion started by: anandek
1 Replies

7. Shell Programming and Scripting

Variable value not getting printed

Hi, I ma trying to do this but don't know why it is not happening? $r1=10 for i in "1" "2" "3" "4"; do x=`eval echo $i`; echo r${x}; done output: r1 r2 r3 r4 also tried for i in "1" "2" "3" "4"; do x=`eval echo $i`; echo $r${x}; done output: 1 (2 Replies)
Discussion started by: abhi1988sri
2 Replies

8. Shell Programming and Scripting

Value not getting printed outside loop

Hi all I'm using below code #!/bin/bash export fileclob cd /home/appsuser/dataload file='EG.mdd' chmod 777 $file dos2unix -ascii -k -q -o $file $file sed -e '${/^$/d}' $file cat $file | while read LINE do echo "line is" if then echo "line is $LINE" echo " " ... (10 Replies)
Discussion started by: Pratiksha Mehra
10 Replies

9. UNIX for Dummies Questions & Answers

How to get " printed on command line?

Hey, Is there a way I can print " in a command line? When I type "echo "set variable = disco"".... This actually prints echo set variable = disco but I would like to print it out as --- echo "set variable = disco" Thanks, Satya (4 Replies)
Discussion started by: Indra2011
4 Replies
getopt(3C)																getopt(3C)

NAME
getopt(), optarg, opterr, optind, optopt - get option letter from argument vector SYNOPSIS
DESCRIPTION
returns the next option letter in argv (starting from that matches a letter in optstring. argc and argv are the argument count and argu- ment array as passed to optstring is a string of recognized option characters; if a character is followed by a colon, the option takes an argument which may or may not be separated from it by whitespace. is the index of the next element of the vector to be processed. It is initialized to 1 by the system, and updates it when it finishes with each element of returns the next option character from argv that matches a character in optstring, if there is one that matches. If the option takes an argument, sets the variable to point to the option argument as follows: o If the option was the last character in the string pointed to by an element of argv, then contains the next element of argv, and is incremented by 2. If the resulting value of is greater than or equal to argc, this indicates a missing option argument, and returns an error indication. o Otherwise, points to the string following the option character in that element of argv, and is incremented by 1. If, when is called, is NULL, or the string pointed to by either does not begin with the character or consists only of the character returns -1 without changing If points to the string returns -1 after incrementing If encounters an option character that is not contained in optstring, it returns the question-mark character. If it detects a missing option argument, it returns the colon character if the first character of optstring was a colon, or a question-mark character otherwise. In either case, sets the variable to the option character that caused the error. If the application has not set the variable to zero and the first character of optstring is not a colon, also prints a diagnostic message to standard error. The special option can be used to delimit the end of the options; -1 is returned, and is skipped. RETURN VALUE
returns the next option character specified on the command line. A colon is returned if detects a missing argument and the first character of optstring was a colon A question-mark is returned if encounters an option character not in optstring or detects a missing argument and the first character of optstring was not a colon Otherwise, returns -1 when all command line options have been parsed. EXTERNAL INFLUENCES
Locale The category determines the interpretation of option letters as single and/or multi-byte characters. International Code Set Support Single- and multibyte character code sets are supported. ERRORS
fails under the following conditions: [EILSEQ] An invalid multibyte character sequence was encountered during option processing. EXAMPLES
The following code fragment shows to process arguments for a command that can take the mutually exclusive options and and the options and both of which require arguments: #include <stdio.h> #include <unistd.h> main (int argc, char *argv[]) { int c; int bflg, aflg, errflg; extern char *optarg; extern int optind, optopt; . . . while ((c = getopt(argc, argv, ":abf:o:")) != -1) switch (c) { case 'a': if (bflg) errflg++; else aflg++; break; case 'b': if (aflg) errflg++; else { bflg++; bproc( ); } break; case 'f': ifile = optarg; break; case 'o': ofile = optarg; break; case ':': /* -f or -o without arguments */ fprintf(stderr, "Option -%c requires an argument ", optopt); errflg++; break; case '?': fprintf(stderr, "Unrecognized option: - %c ", optopt); errflg++; } if (errflg) { fprintf(stderr, "usage: . . . "); exit(2); } for ( ; optind < argc; optind++) { if (access(argv[optind], 4)) { . . . } WARNINGS
Options can be any ASCII characters except colon question mark or null SEE ALSO
getopt(1), thread_safety(5). STANDARDS CONFORMANCE
getopt(3C)
All times are GMT -4. The time now is 10:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy