C Program Return the number of tokens given a command
- /* in setup_stack()... */
- int i = 0;
- int argc = get_argc(file_name);
- char *token, *save_ptr;
- char **argv = malloc((argc + 1) * sizeof(char *));
- size_t token_size;
//generate argv and push args onto stack
- for (token = strtok_r((char *)file_name, " ", &save_ptr); token != NULL; token = strtok_r(NULL, " ", &save_ptr)) {
- token_size = strlen(token) + 1;
- *esp = *esp - token_size;
- argv[i] = *esp;
- i++;
- memcpy(*esp, token, token_size);
- } argv[argc] = 0;
//perform alignment
- size_t alignment = (size_t) *esp % 4;
- if (alignment) {
- *esp = *esp - alignment;
- memcpy(*esp, &argv[argc], alignment);
- }
//push argv pointers
- for (i = argc; i >= 0; i--) {
- *esp = *esp - sizeof(char *);
- memcpy(*esp, &argv[i], sizeof(char *));
- }
//push pointer to argv
- char *ptr = *esp;
- *esp = *esp - sizeof(char **);
- memcpy(*esp, &ptr, sizeof(char **));
- //push argc
- *esp = *esp - sizeof(int);
- memcpy(*esp, &argc, sizeof(int));
//push dummy return address
- *esp = *esp - sizeof(void *);
- memcpy(*esp, &argv[argc], sizeof(void *));
- free(argv);
- return success;
- }
/* Return the number of tokens given a command 'file_name.' */
- int get_argc(const char* file_name) {
- int argc = 0;
- char *buffer, *token, *save_ptr;
- buffer = malloc(sizeof(file_name));
- strlcpy(buffer, file_name, sizeof(file_name));
- for (token = strtok_r((char *)buffer, " ", &save_ptr); token != NULL; token = strtok_r(NULL, " ", &save_ptr)) {
- argc++;
- }
- free(buffer);
- return argc;
- }
Learn More :
Return
Number
- Find out the perfect number using c program
- Write a c program to find out H.C.F. of two numbers.
- Check the given number is armstrong number or not using c program.
- Write a c program to find largest among three numbers using conditional operator
- FIND OUT GENERIC ROOT OF A NUMBER - C PROGRAM.
- FIND PRIME FACTORS OF A NUMBER USING C PROGRAM
- How To Write a C program that generates two random numbers ?
- Write a C program to find maximum or equal between two numbers ?
- How to Write a C program to find maximum between two numbers ?
- Write a C program to perform math operations on two input whole numbers. The operations are:
- Write a C program to find maximum between three numbers ?
- Sort Three Numbers - program reads in three Integers and displays them in ascending order.
- C Program to Enter an ODD number between 1 and 49.
- C program acquires keyboard 10 numbers for each of these numbers to determine if it is a first issue, by printing immediately message should at the end, if none of the numbers you entered was a first issue, print an appropriate message.
- C program generates a random number and uses an algorithm to generate 9 other numbers.
- C Program to Find Random Number
- C Program To Find LCM and HCF Of Two Number Using Function - 2
- C Program to find LCM and HCF Of Two Number Using Recursion - 3
- C Program To Find LCM and HCF Of Two Number -1
- C Program To Find Reverse Of Any Digit Number
- C Program To Find The Frequency Of A Number
- C Program To Print Prime Numbers Upto The Number You Want
- C Program To Print Sum Of n Digit Number
- C Program To Reverse A Number
- C Program To Search A Number Inside The Array
given
- C Program To Find Week Day Of A Given Date
- Give me an integer and I will sum it with the previous natural numbers
- C program calculates a given function in range given by user, stores the data in arrays and displays the answer in a table.
- C Program to Check Given String is Palindrome or Not
- C Program That in a Given Natural Number x Insert Figure c at Position p
- C Program reads in and spews out the attributes of a given .wav file.
- C Program Recursive function that searches for a given file in a given folder
- C Program to accept m*n matrix from user and display the elements of given matrix using function
- C program to display the transpose of given 3 X 3 matrix
- C Program to convert given decimal number into binary number
Argument
Command
Token