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