Oi...

eu respondi sua mensagem na lista asteriskbrasil, mas com a moderação dela, só deve chegar amanhã, hehehe

tenta um strip no arquivo.

# strip executable.agi

isso deve reduzir mais um pouco o tamanho do seu arquivo...

Diego Aguirre
Infodag - Informática
FWD#: 459696
Nikotel#: 99 21 8138-2710
EnumLookup#: +55 21 8138-2710
DUNDi-br#: 21 8138-2710


[EMAIL PROTECTED] escreveu:
Hi Folks:

I used that one example for AGI script on C web, only to fill the working with 
the Asterisk. I compiled and it worked great. I executed accidentally the ls -l 
command in directory where was the source and executable, I noted and was 
surprised that because the executable size was to further 20 times more than 
source.

I executed the gcc -Os source.c -o executable.agi command several times, with 
otimization flags different. Maximum i can affort to reduce the executable size 
was 17 times.

The source size full comment is 448 Bytes;
The size executable was about 7615 Bytes. (the maximum i got to reduce)

I was hope the executable size was in the order of magnitude of the proper 
source size, since the comments are long.

Do one get to explain because of this?
Is this overhead consequence of linking with the operational system?
The script use only four functions of stdio.h library. It was seem that the 
compiler include all stdio.h functions and compile all them.

I would like somebody of list to clear my doubt.

Regards,
Cleviton.


Here below small script used I grasp on site: 
http://home.cogeco.ca/~camstuff/agi.html

/* C works just fine with Asterisk but you should use 'setlinebuf' on stdout and stderr. This causes buffering one line at a time (rather than using a larger buffer). If you *don't* do this on stdout then your script will hang up while Asterisk waits for a command but the (long) buffer isn't full yet. A minimal AGI script in C looks like this: */
//
   #include <stdio.h>
   main() {
       char        line[80];
       /* use line buffering */
       setlinebuf(stdout);
       setlinebuf(stderr);
       /* read and ignore AGI environment */
       while (1) {
           fgets(line,80,stdin);
           if (strlen(line) <= 1) break;
       }
       /* Send asterisk a command */
       printf("SAY NUMBER 123 \"\"\n");
       /* Read response from Asterisk and show on console */
       fgets(line,80,stdin);
       fputs(line,stderr);
   }

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users


_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to