begin process at 2010 03 12 15:59:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > LA COMMANDE CAT SANS LES OPTIONS

LA COMMANDE CAT SANS LES OPTIONS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Niveau :Initié Date de création :03/11/2003 Vu :3 541

Auteur : alimdi

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

la commande cat qui permet d'afficher un fichier sur la sortie standard avec gestion de la commande cat tout court et cat avec une infinitée de fichiers.


Source

  • /*
  • ** cat.c
  • **
  • ** Made by ali mdidech
  • **
  • **
  • ** Started on Fri Oct 24 17:54:34 2003 ali mdidech
  • ** Last update Mon Oct 27 17:13:51 2003 ali mdidech
  • */
  • #include <stdlib.h>
  • #include <unistd.h>
  • #include <fcntl.h>
  • void my_putchar(char c)
  • {
  • write(1, &c, 1);
  • }
  • void my_putstr(char *str)
  • {
  • for (; *str != 0; str++)
  • my_putchar(*str);
  • }
  • void cat(char *fn)
  • {
  • int nb;
  • int fd;
  • char *buffer;
  • fd = open(fn, O_RDONLY);
  • buffer = (char *) malloc(sizeof(char) * 512);
  • while ((nb = read(fd, buffer, 512)) > 0)
  • write(1, buffer, nb);
  • if (nb == (-1))
  • {
  • my_putstr("cat: ");
  • my_putstr(fn);
  • my_putstr(": Operation not permitted\n");
  • }
  • close(fd);
  • }
  • void cat_alone()
  • {
  • char buffer[512];
  • int nb;
  • while ((nb = read(0, buffer, 512)) > 0)
  • write (1, buffer, nb);
  • }
  • int main(int ac, char **argv)
  • {
  • if (ac < 2)
  • cat_alone();
  • else
  • {
  • ac--;
  • argv++;
  • while (ac-- > 0)
  • if (*argv[0] == '-')
  • cat_alone();
  • else
  • cat(*argv++);
  • }
  • return (0);
  • }
/*
** cat.c
**
** Made by ali mdidech
** 
**
** Started on  Fri Oct 24 17:54:34 2003 ali mdidech
** Last update Mon Oct 27 17:13:51 2003 ali mdidech
*/

#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

void	my_putchar(char c)
{
  write(1, &c, 1);
}

void	my_putstr(char *str)
{
  for (; *str != 0; str++)
    my_putchar(*str);
}

void	cat(char *fn)
{
  int	nb;
  int	fd;
  char	*buffer;

  fd = open(fn, O_RDONLY);
  buffer = (char *) malloc(sizeof(char) * 512);
  while ((nb = read(fd, buffer, 512)) > 0)
    write(1, buffer, nb);
  if (nb == (-1))
    {
    my_putstr("cat: ");
    my_putstr(fn);
    my_putstr(": Operation not permitted\n");
    }
  close(fd);
}

void	cat_alone()
{
  char	buffer[512];
  int	nb;

  while ((nb = read(0, buffer, 512)) > 0)
    write (1, buffer, nb);
}

int	main(int ac, char **argv)
{
  if (ac < 2)
    cat_alone();
  else
    {
      ac--;
      argv++;
      while (ac-- > 0)
	if (*argv[0] == '-')
	  cat_alone();
	else
	  cat(*argv++);
    }
  return (0);
}

 Conclusion

ras


 Sources du même auteur

UN BEAU CARRE
UN SAPIN DE NOEL

 Sources de la même categorie

Source avec Zip EDITER UN FICHIER BIT PAR BIT par riton91
Source avec Zip Source avec une capture ID3 TAG COVER ALBUM IMAGE par nanonavich
FILEREADER par FrancoisGauthier
Source avec Zip CLASSE AVANCÉE DE LOG, THREAD SAFE ET DIVERSES SURCHARGES par sboli
Source avec Zip Source avec une capture Source .NET (Dotnet) INFILESEEKER par swonder

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales