C - command line argurments


 
Thread Tools Search this Thread
Top Forums Programming C - command line argurments
# 1  
Old 12-19-2007
Error C - command line argurments

Ok, I'm trying to get into more advanced stuff but I'm having some difficulty. First I'm positive that I'm using 'agrv' wrong.

Code:
#include <stdio.h>
#include <sys/types.h> 


int main(in argc, char *argv[])
{

        int blocks;

        blocks = stat(argv[1], argv[1].st_blocks); // This is what I'm trying to get working

        printf("file uses %d blocks \n", blocks);

        return 0;
        }
~                                                                               
~                                                                               
~                                                                               
~

Alright, this is suppose to return the number of blocks a file is occupying on a hard disk.

the 'man' page says stat is suppose to be this

int stat ( const char *path, struct stat *buf );

the first part I understand but the 2nd part I'm really troubled with.

Any help is greatly appreciated.
# 2  
Old 12-19-2007
Code:
#include <sys/types.h> 
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

int main(int argc, char *argv[])
{
        int blocks;
        struct stat s;

        if (argc != 2)
        {
            fprintf(stderr,"usage: %s filename\n",argv[0]);
            return 1;
        }

        blocks = stat(argv[1],&s);

        if (!blocks)
        {
             printf("%s uses %d blocks \n",
                      argv[1],
                      (int)s.st_blocks);
        }
        else
        {
             perror(argv[1]);
             return 1;
        }

        return 0;
}


Last edited by porter; 12-19-2007 at 09:50 PM..
# 3  
Old 12-19-2007
>.> wow, that was faster than I had expected. Thanks for clearing up my code for me, time to learn from it.Smilie

edit: BTW do you need both

#include <sys/types.h>
#include <sys/stat.h>
# 4  
Old 12-19-2007
Quote:
Originally Posted by VRoemer
#include <sys/types.h>
#include <sys/stat.h>
The man page for stat on Solaris says you should. Smilie
# 5  
Old 12-19-2007
Oh, Noes I get errors

blockcount.c:7: error: parse error before 'argc'
blockcount.c: In function 'main':
blockcount.c:12: error: 'argc' undeclared (first use in this function)
blockcount.c:12: error: (Each undeclared identifier is reported only once
blockcount.c:12: error: for each function it appears in.)
blockcount.c:14: error: 'argv' undeclared (first use in this function)
blockcount.c:32: error: parse error at end of input

EDIT: wait I see something a typo

alright fixed typo now I get

blockcount.c:32: error: parse error at end of input

Edit Again: Another typo im missing }
# 6  
Old 12-21-2007
Code:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc, char *argv[])
{
    struct stat s;

    if (stat(argv[1], &s)) {
        perror(argv[1]);
        return 1;
    } else
        printf("file %s uses %ld blocks\n", argv[1], s.st_blocks);
    return 0;
}

# 7  
Old 12-21-2007
Code:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc, char *argv[]) {
    if (argc==2) {
        struct stat s;

        if (stat(argv[1], &s)) {
           perror(argv[1]);
        } else {
            printf("file %s uses %ld blocks\n", argv[1], (long)s.st_blocks);
            return 0;
         }
     } else {
         fprintf(stderr,"Usage: %s filename\n",argv[0]);
     }
     return 1;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to read the output of a command line by line and pass it as a variable?

Hi, I have some 2000 names in a table like below. Java Oracle/SQL ANSI SQL SQL,DWH,DB DB&Java And by using for loop in my code i am able to get a single word but if there is any special character or space then it is considering as a next line. I have to execute the below queries in... (10 Replies)
Discussion started by: Samah
10 Replies

2. Shell Programming and Scripting

Perl command line option '-n','-p' and multiple files: can it know a file name of a printed line?

I am looking for help in processing of those options: '-n' or '-p' I understand what they do and how to use them. But, I would like to use them with more than one file (and without any shell-loop; loading the 'perl' once.) I did try it and -n works on 2 files. Question is: - is it possible to... (6 Replies)
Discussion started by: alex_5161
6 Replies

3. Shell Programming and Scripting

sed command to replace a line in a file using line number from the output of a pipe.

Sed command to replace a line in a file using line number from the output of a pipe. Is it possible to replace a whole line piped from someother command into a file at paritcular line... here is some basic execution flow.. the line number is 412 lineNo=412 Now i have a line... (1 Reply)
Discussion started by: vivek d r
1 Replies

4. UNIX for Dummies Questions & Answers

To find and display the middle line in a file using single line command.

Hi all, How can i display the middle line of a file using a single line command? (6 Replies)
Discussion started by: Lakme Pemmaiah
6 Replies

5. Shell Programming and Scripting

sed command to grep multiple pattern present in single line and delete that line

here is what i want to achieve.. i have a file with below contents cat fileName blah blah blah . .DROP this REJECT that . --sport 7800 -j REJECT --reject-with icmp-port-unreachable --dport 7800 -j REJECT --reject-with icmp-port-unreachable . . . more blah blah blah --dport 3306... (14 Replies)
Discussion started by: vivek d r
14 Replies

6. Shell Programming and Scripting

sed command to replace a line at a specific line number with some other line

my requirement is, consider a file output cat output blah sdjfhjkd jsdfhjksdh sdfs 23423 sdfsdf sdf"sdfsdf"sdfsdf"""""dsf hellow there this doesnt look good et cetc etc etcetera i want to replace a line of line number 4 ("this doesnt look good") with some other line ... (3 Replies)
Discussion started by: vivek d r
3 Replies

7. Shell Programming and Scripting

Bash - Loading a command's output line by line into an array

I have been trying this a lot of different ways and haven't found too much online. Here's what I've got so far: j=0 declare -a first zero=(`cat $tmpfile`) for i in "${zero}" do command $i >> "${first}" ... (4 Replies)
Discussion started by: Azrael
4 Replies

8. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

9. Shell Programming and Scripting

Need help in sed command [ printing a pattern + its line no or line no alone ]

Hello friends, Only very recently i started learning sed command...an i found that sed is faster in finding the patterns than some of my scripts that uses grep to check the patten inside a file using line by line search method which is time consuming. The below script... (4 Replies)
Discussion started by: frozensmilz
4 Replies
Login or Register to Ask a Question