![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de Alto Nivel Plantear preguntas acerca de C, C + +, Java, SQL, y otros lenguajes de programación aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| la comprobación de valor que no sea cero | philplasma | UNIX for Dummies Preguntas y Respuestas | 6 | 01-08-2008 04:51 PM |
| control uid | filthymonk | Programación de scripts de shell y | 7 | 07-19-2007 11:40 PM |
| Comprobación de los avances cp | MarGur | UNIX for Dummies Preguntas y Respuestas | 0 | 05-15-2007 05:13 PM |
| Comprobación de PXE | maestro @ Altiris | Sun Solaris | 5 | 05-25-2004 01:06 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Hola,
Estoy practicando con programas de ejercicio del sistema de llamadas. Ejercicio Pregunta: escribir un pogram a aceptar un nombre de archivo por parte del usuario. El programa debe escribir ecery quinto byte del archivo a la salida estándar. Mi Programa: # Include <stdio.h> # Include <fcntl.h> # Include <error.h> main () ( int fd, first_offset \u003d 5, move_offset \u003d 0, x \u003d 1; char a, nombre [20]; scanf ( "% s", nombre); fd \u003d open (nombre, O_RDONLY, 0755); printf ( "fd es% d", fd); if (fd \u003d\u003d- 1) ( printf ( "error"); exit (1); ) while (x <5) ( move_offset \u003d move_offset + first_offset; lseek (fd, move_offset-1, 0); leer (fd, nombre, sizeof (nombre)); escribir (1, nombre, 1); x + +; ) ) Salida: [ramki @ lindesk3 sysint_ex] ex1.c $ cc-o ex1 [ramki @ lindesk3 sysint_ex] $ ./ex1 . / prueba FIVEfd es de 3 El archivo "prueba" de contenido: abcdFfghiIklmnVpqrsE Ahora mi pregunta: 1. en el programa, he utilizado un bucle while varaible con una "X" y comparándolo con ningún azar de mi elección 5. Quiero que en lugar de comprobar la condición en la EF whilepart. Cómo comprobar que. Si estamos usando el archivo puntero y fopen fn, podemos usar al mismo tiempo (feof (fp) \u003d\u003d 0). Pero aquí hemos utilizado syatem pide y yo no sé cómo comprobar el estado aquí. 2. Te en la salida del programa, he encontrado "cinco", antes de imprimir el número filedescriptor. Pero como por mi programa de flujo, fd debe imprimirse en primer lugar y luego la salida "CINCO". 3.Is Hay alguna othet forma de escribir el programa más sencillo y preciso, sobre todo utilizando piointer para obtener el nombre del archivo, utilizando instaed de matriz. Ayuda por favor ... Gracias, Ramkrix |
|
||||
|
Cita:
Código:
#include <stdio.h>
main(int argc, char *argv[])
{
char *infile;
FILE *stream;
infile = argv[1];
stream = fopen(infile, "r");
}
|
|
||||
|
Gracias por su respuesta trébol ..
Tis es la forma, tengo que incluir en la condición de bucle while: while (feof (stream) \u003d\u003d 0) Una pregunta para usted: en lugar de utilizar la línea de comandos y la biblioteca C args FNS podemos comprobar esto con el programa de llamadas al sistema absoluto .. Gracias de antemano, Ramkrix |
|
||||
|
Cita:
La llamada al sistema es mejor para la lectura 5 bytes en el momento de la impresión y archivo de entrada el quinto byte de la salida estándar. Este método es preferible a una creciente y contrarrestar las pruebas en repetidas ocasiones si x <5 o control de uso de la EF feof () estándar lib función. Código:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
main(int argc, char *argv[])
{
int fd;
char name[5];
fd = open("/path/to/input/file", O_RDONLY);
while (read(fd, (void *) name, (size_t) 5) == 5)
printf("the fifth byte is %c\n", name[4]);
}
|
|
||||
|
De nuevo gracias por la útil información Shamrock.
quisiera pedirle que la última pregunta de su respuesta: while (leer (fd, (void *) nombre, (size_t) 5) \u003d\u003d 5) El "(size_t) 5", ¿qué significa y va a hacer? Bcoz i lectura de un libro que tenemos que dar el sizeof () en el operador final. También se le comaparing a valor "\u003d\u003d 5"? No podía entender aquí. La continuación es un código de lo que yo en mi programa: leer (fd, nombre, sizeof (nombre)); Era una mina de un derecho? ![]() |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|