FORUM Tom's Hardware » Programmation » C / C++ / Java » CGI C : lire un fichier son du serveur
 

CGI C : lire un fichier son du serveur

Il y a 280 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : CGI C : lire un fichier son du serveur
 
Plus d'informations

Bonjour tout le monde ! :-)  
 
J'aimerai pouvoir à partir d'un client HTTP lire un fichier son quelconque du serveur (.wav par ex).  
 
Je connais l'emplacement du fichier son dans le serveur et ce fichier ne se trouve pas dans le répertoire d'Apache (httpd) mais plutôt dans les /var/etc.  
L'équivalent en PERL est la fonction "sysread" et "syswrite".  
 
Quelqu'un connaît t'il l'équivalent en CGI C ?  
 
Merci d'avance,  
Made.

Plus d'informations

fopen() avec read ou fread() mais c'est de plus bas niveau que perl


Message édité par void le 08-03-2004 à 18:20:13
Plus d'informations

void a écrit :

fopen() avec read ou fread() mais c'est de plus bas niveau que perl


 
Oui... justement, que fais exactement les fonctions systread et syswrite PERL par rapport à un fread en C ?
 
En fait, j'ai récupérer un programme PERL qui permet de lire un fichier audio sur le serveur par un client http. J'aimerai trouver l'équivalent en C ou encore, passer le code PERL en C.
 
Voici le code PERL :
 

Code :
  1. sub read_audio()
  2. {
  3.     my $msgid = param('msgid');
  4.     my &format = param('format');
  5.     my $path = "/var/spool/test.wav";
  6.     $msgid =~ /^\d\d\d\d$/ || die("Wrong msg ($msgid)!" );
  7.         [g]grep(/^${format}$/, keys %formats) || die("Wrong Format ($format)!" );[/g]
  8.     # Mailbox and folder are already verified
  9.     if (open(AUDIO, "<$path" ))
  10.     {
  11.         $size = -s $path;
  12.         $|=1;
  13.         [g]print header(-type=>$formats{$format}->{'mime'}, -Content_length => $size);
  14.         while(($amt = sysread(AUDIO, $data, 4096)) > 0)
  15.         {
  16.             syswrite(STDOUT, $data, $amt);
  17.         }[/g]
  18.         close(AUDIO);
  19.     }
  20.     else
  21.     {
  22.         die("Cannot open $path\n" );
  23.     }
  24. }


 
 
Quelqu'un pourrait-il m'aider à comrendre le code en gras ? Je ne connais pas le PERL mais plutôt le C...
 
Merci d'avance.
Made

Plus d'informations

Oups, on pe pas combiner les tags...  
 

void a écrit :

fopen() avec read ou fread() mais c'est de plus bas niveau que perl


 
Oui... justement, que fais exactement les fonctions systread et syswrite PERL par rapport à un fread en C ?
 
En fait, j'ai récupérer un programme PERL qui permet de lire un fichier audio sur le serveur par un client http. J'aimerai trouver l'équivalent en C ou encore, passer le code PERL en C.
 
Voici le code PERL :
 
sub read_audio()
{
 my $msgid = param('msgid');
 my &format = param('format');
 my $path = "/var/spool/test.wav";
 
 $msgid =~ /^\d\d\d\d$/ || die("Wrong msg ($msgid)!" );
        grep(/^${format}$/, keys %formats) || die("Wrong Format ($format)!" );  
 
 # Mailbox and folder are already verified
 if (open(AUDIO, "<$path" ))  
 {
  $size = -s $path;
  $|=1;
   
  print header(-type=>$formats{$format}->{'mime'}, -Content_length => $size);
   
  while(($amt = sysread(AUDIO, $data, 4096)) > 0)  
  {
   syswrite(STDOUT, $data, $amt);
  }

  close(AUDIO);
 }  
 else  
 {
  die("Cannot open $path\n" );
 }
}
 
 
Quelqu'un pourrait-il m'aider à comrendre le code en gras ? Je ne connais pas le PERL mais plutôt le C...
 
Merci d'avance.
Made


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » CGI C : lire un fichier son du serveur
 

Annonces Google
Publicité