Friday, September 8, 2006

Source madness

I've been working on a logging program, it's nothing much but it's good learning fun, usually...

She basically deals with command line options like so:
while ((ch = getopt(argc, argv, "rchtf")) != -1)
        switch (ch) {
        case 'r':
            rflag = 1;                /* read log, like tail */
            break;
            case 't':
            tflag = 1;                /* read top of log like head */
            break;
        case 'f':
            fflag = 1;                /* log to a diffrent file */
            break;

When ever a switch is "On" or "1" we perform an action. When no switches are given we fscanf stdin into a str[256] char array. This is more then enough space and shouldn't be to memory hungry for right now. Input is taken until a new line is given then we store it in the char array and fprintf it into our logfile + a newline. I toyed around with trying to resize str to match stdin should str be to small, so we could avoid a segfault when trying to write huge entries. Yet allow no major limit on entry size. That nett'd me a good junk pointer warning I'm sure not able to find out all the details of.

Right now I'm working on trying to get the t switch working using the source for the head command as a reference. So far no real luck, we never get any output from it. It seems to break apart in the line of execuition so I know I've got to change things around.

I know I could just pass things along to head and tail via sh, but what is the fun in that? I'll figure this out later must sleeeeeeeeeeeeppp!!!!

/* I don't do HTML ! */

No comments:

Post a Comment