Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
read [d/mY H:i]
laureano criada
read [d/mY H:i]
laureano
Linha 3: Linha 3:
 Sintaxe: Sintaxe:
  
-<code c> +''​[[ssize_t]] read (int iFileDescriptor,​ void  *buffer, [[size_t]] nbyte);''​ 
-[[ssize_t]] read (int iFileDescriptor,​ void  *buffer, [[size_t]] nbyte); + 
-</​code>​+---- 
  
 A função **read** realiza a leitura de dados do arquivo para a memória. Deve-se informar de qual descritor devem ser lidos os bytes. O descritor deve estar aberto com opção **O_RDONLY** ou **O_RDWR**. Os dados serão lidos a partir da posição corrente. A função **read** realiza a leitura de dados do arquivo para a memória. Deve-se informar de qual descritor devem ser lidos os bytes. O descritor deve estar aberto com opção **O_RDONLY** ou **O_RDWR**. Os dados serão lidos a partir da posição corrente.
Linha 22: Linha 23:
 #include <​fcntl.h>​ #include <​fcntl.h>​
  
-void main(int argc, char  *argv[])+int main(int argc, char  *argv[])
 { {
-   ​int ​    fd;+   ​int ​iFileDescriptor;
  
- +   /* A constante _POSIX_PATH_MAX] indica o tamanho (de caracteres incluindo diretórios e subdiretórios) que um arquivo pode possuir. 
-   ​char ​   sNome [_POSIX_PATH_MAX];​+           Esta definido no arquivo limits.h */ 
 +   char sNome [_POSIX_PATH_MAX];​
    ​ssize_t iQtdeLida;    ​ssize_t iQtdeLida;
-   ​char ​   aBuffer[100];​+   char aBuffer[100];​
  
    ​printf ("​Entre com o nome do arquivo : ");    ​printf ("​Entre com o nome do arquivo : ");
    gets (sNome);    gets (sNome);
-   ​fd ​= open (sNome, O_RDONLY);​ + 
-   if (fd < 0)+   ​iFileDescriptor ​= open (sNome, O_RDONLY);​ 
 +   if (iFileDescriptor ​< 0)
    {    {
       perror (argv[0]);       perror (argv[0]);
Linha 43: Linha 46:
    ​printf("​\nTentando ler 100 bytes do arquivo indicado\n"​);​    ​printf("​\nTentando ler 100 bytes do arquivo indicado\n"​);​
  
-   ​iQtdeLida = read (fd, &​aBuffer,​ 100);+   /* deve-se passar sempre o endereço de memória da variável que vai receber os bytes lidos */ 
 +   iQtdeLida = read (iFileDescriptor, &​aBuffer,​ 100);
  
    if (iQtdeLida < 0)    if (iQtdeLida < 0)
Linha 52: Linha 56:
  
    ​printf("​\nForam lidos %d bytes do arquivo '​%s'​\n",​ iQtdeLida, sNome);    ​printf("​\nForam lidos %d bytes do arquivo '​%s'​\n",​ iQtdeLida, sNome);
-   close (fd); +   close (iFileDescriptor); 
-   exit (0);+   return ​0;
 } }
 </​code>​ </​code>​
 +
 + --- //​[[marcos@laureano.eti.br|Marcos Laureano]] 2008/04/25 06:47//
read.txt · Última modificação: d/mY H:i (edição externa)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0