S_IRGRP y S_IROTH en DEV C + +

  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 10:28 am

PPL ¡Hola!

Yo estaba usando Cygnus y los S_IRGRP y S_IROTH he usado son perfectamente normales, pero ahora cuando uso Dev-C + +, dice que esos son declarados así que los comentaré a cabo. Quiero decir simplemente eliminar las argments. Pero luego los resultados son totoally diferentes. Los archivos son de sólo lectura, pero de Coz quiero leer los archivos demasiado.... Alguien tiene una idea para esto?

Estas son las líneas

Código: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH ))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH ))<0)
  2.   printf("open error\n");

ahora tengo que cambiar en

ahora tengo que cambiar en
Código: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  2.   printf("open error\n");


pero creo que el usgae es diferente......
Alguien please ayuda!! :shock:
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 14th, 2003, 10:28 am

  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 1:57 pm

Cuando usted cambia lo hace el programa no funcionará como se esperaba o están ustedes recibiendo errores? Si su funcionamiento no la forma en como se esperaba los resultados son diferentes?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 7:02 pm

O...En primer lugar, los mensajes de error r cuando compilo el programa. Los mensajes de error son

Código: [ Select ]
`S_IRGRP' undeclared (first use in this function)
`S_IROTH' undeclared (first use in this function)
  1. `S_IRGRP' undeclared (first use in this function)
  2. `S_IROTH' undeclared (first use in this function)


Así es como el compilador sólo no reconoce los argumentos que algunos incorporado en los argumentos. Creo que el DEV C + + compiler sólo no tiene esa sintaxis.


Cuando estaba utilizando Cygnus, todo es fione. El archivo creado puede ser leído y escrito. Pero entonces el archivo creado por el Dev-C + + es de sólo lectura. Así que no pude escribir en el archivo. Eso es la gran diferencia entre los dos. Así que, ¿alguien por casualidad sabe lo que debe utilizarse para sustituir a los dos argumentos?


Thanz!!! :D
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 7:18 pm

Así que simplemente han intentado eliminar y ver si compila bien entonces?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 9:17 pm

Thats si bien lo que he dicho es el problema en el primer mensaje.
Usted puede ver que suprime la
Código: [ Select ]
S_IRGRP | S_IROTH
en los códigos utilizando Dev-C + +. Pero la cosa es el archivo creado sólo puede ser leído, no puede ser escrito. Yo quiero que sea por escrito.... y si esos dos argumentos "S_IRGRP | S_IROTH" son en realidad el sentido de la autoridad de leer por un grupo y por otros. Y su justo extraño que yo haya suprimido estos argumentos que se relacionan con la lectura y el resultado es que no puedo escribir en el archivo.

Tan.... ¿Alguna idea? :D
Thanz!!
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 9:27 pm

Bueno, yo soy más de una C + + persona y me gustaría poder tener leer y escribir, capacidad de decir algo como esto

fstream (fn, ios:: | ios:: out)

sin embargo, que probablemente le hace ningún bien haha. Prueba de ello, sustituir con O_WRONLY O_RDWR, véase el caso de que haga algo.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 9:28 pm

También cuando se trate de escribir, ¿le dan un error? como tal vez usted tiene mal los permisos? Escribir el acceso denegado o algo?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 9:31 pm

También otra cosa que intentar es este

Cambiar añadir al final, 0777

Así que deberás tener el código que acaba pareciéndose

Código: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR, 0777))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR, 0777))<0)
  2.   printf("open error\n");


Esto probablemente no funcionará, pero no se pierde nada con intentarlo.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 10:17 pm

haha ooooo hey creo que sólo funciona ahora.... realmente sé por qué...¿Has olvidado lo que Ive cambiado hehe...He intentado algunas de las sugerencias de la RU. Thanz realmente!!

Y oye tengo otro problema...tal vez Ive preguntó before. ¿Sabes cómo hacer que el contenido dentro del archivo legible? Quiero decir sí ahora Ive creó un archivo y escribir en él. Si bien su momento. Pero Wanan leer cuál interior. Bcoz al escribir en el archivo. Im escribir realmente char array en ella. Pero cuando abro el archivo, lo único que veo son sólo algunos caracteres extraños y cadenas...símbolos.... ¿Y sabes ahora para que sea legible?

Heres la función para escribir en el archivo
Código: [ Select ]
short int Send(unsigned char *message, unsigned short int nbytes) {
    if ((fd = open("card.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
    printf("open error\n");
    if (write(fd, message, nbytes) != nbytes)
        printf("write error\n");
    if (close(fd)<0)
        printf("close error\n");
    return(NO_ERR);
}
  1. short int Send(unsigned char *message, unsigned short int nbytes) {
  2.     if ((fd = open("card.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  3.     printf("open error\n");
  4.     if (write(fd, message, nbytes) != nbytes)
  5.         printf("write error\n");
  6.     if (close(fd)<0)
  7.         printf("close error\n");
  8.     return(NO_ERR);
  9. }


Esperamos que usted me puede dar algunas pistas :D Thanz de nuevo!!
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 10:25 pm

o estúpido me...se olvidó de pedir lo más importante. Me refiero en primer lugar, para leer los datos dentro del archivo. Debo tener que añadir los datos, o de lo contrario carecería de sentido thatll para hacerlo. Por lo tanto, ¿sabe usted cómo añadir los datos en el archivo? Coz Creo que lo Im haciendo ahora con el programa anterior es simplemente overwritting theres cada vez que una nueva cadena. En realidad quiero hacer un archivo y lo tratan como un archivo de registro.

Es lo que hacen u saben cómo hacerlo? :shock:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 10:33 pm

Sí deshacerse de O_TRUNC y debe adjuntar los datos en lugar de truncar el archivo a un tamaño de 0 cada vez. Es posible que desee leer esta página, podría ayudarle a algunos:

http://www.opengroup.org/onlinepubs/007 ... /open.html

Por lo que respecta a la matriz de caracteres, cuando haya leído el archivo basta con que el contenido del archivo que está leyendo se almacena en los datos del mismo tipo que ha sido escrito pulg Si no lo hace usted, probablemente, conseguir un montón de desordenado sybmols. De todos modos después de la importación de los datos en el mismo tipo, entonces tratar de que los datos de salida y usted debería ver que está bien.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 10:37 pm

O...sí quiero decir que puedo escribir en el archivo y la lectura de que con un mismo tipo, char array que es. Pero cuando realmente abrir el archivo, se conocen todos los extraños cuerdas. Im no tratar de la salida de datos dentro del archivo. Me refiero a Im realmente abrir el archivo, y el contenido inisde seguramente no tienen sentido para mí haha. Pero de cuando me coz printf () en el programa, su bien.

tan.... ¿qué piensan u :shock:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 10:43 pm

Oh haha, que se debe a que usted está escribiendo el archivo en binario, probablemente. Si quieres ser capaz de leer el contenido del archivo de digamos que con la apertura de cuaderno, usted no desea escribir en modo binario.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Registrado: Feb 28, 2003
  • Mensajes: 52
  • Status: Offline

Nota Marzo 14th, 2003, 10:48 pm

.........así que ¿cómo hago para escribir en el modo de derecho? hehe :lol:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Online

Nota Marzo 14th, 2003, 11:08 pm

Así que está utilizando la función de escribir para escribir tus bytes a un fichero, y creo que es lo que está causando, sin embargo no estoy positiva. Yo suelo hacer esto en C + + y por defecto sería escribir en modo ASCII, y si yo quería escribir en modo binario Me limitaré a establecer una bandera. Ver si hay otra manera de escribir en su archivo que no sea usando la función de escribir. No puedo recordar cómo hacerlo usando llanura C.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 14th, 2003, 11:08 pm

Publicar Información

  • Total de mensajes en este tema: 17 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 127 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC