• Lunes 12 de Mayo de 2025, 22:23

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Eternal Idol

Páginas: 1 ... 15 16 [17] 18 19 ... 205
401
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 19:23 »
Ah, tiene la obligacion, es decir que como imagine desde un principio esto es una TAREA y no una duda. Bueno, intente hacer lo que le dije, y podra ver cual es el valor de cs.

402
C/C++ / Re: No me funciona la E/S asíncrona en las tuberías con nombre
« en: Sábado 24 de Octubre de 2009, 19:13 »
SIGIO (which is not specified in POSIX.1-2001) is ignored by default on several other Unices.

http://linux.die.net/man/7/signal

SIGIO is somewhat more complex than SIGPIPE. First, a call to ioctl() to request the enabling FIOASYNC is required to enable generation of this signal. Second, another call to ioctl() is required to request SIOCSPGRP, which sets the target process group. A target process group is either a process (specified by a positive process id) or a process group (specified by a negative process id).

http://docs.hp.com/en/32650-90372/ch02s14.html

Si lo anterior no funciona (los ioctl's) por lo que pude entender del libro "UNIX Programacion Avanzada" SIGIO es una señal que aparecio en BSD y puede que necesites usar la funcion que aparecio para las señales que incorporaron: sigvec.

403
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 19:05 »
Bien, igual no entiendo como a alguien le puede interesar un detalle (irrelevante si se me permite) del funcionamiento interno de un S.O. arcaico y obsoleto como MS-DOS.

Haciendo un programa que ejecute a este y depurando al primero deberias poder comprobar si tus calculos son correctos.

404
C/C++ / Re: Comprobar de forma segura el acceso a memoria
« en: Sábado 24 de Octubre de 2009, 18:16 »
De nadas  :comp:

405
C/C++ / Re: Comprobar de forma segura el acceso a memoria
« en: Sábado 24 de Octubre de 2009, 17:10 »
Lo ideal es intentar acceder a la memoria y captuarar la excepcion en Windows usando SEH y en Linux tal y como mencionaste al principio del hilo.

http://stackoverflow.com/questions/2693 ... -protectio

406
C/C++ / Re: Comprobar de forma segura el acceso a memoria
« en: Sábado 24 de Octubre de 2009, 16:07 »
Efectivamente el problema esta en otra parte, si un programa le pasa un puntero erroneo a tu libreria no hay mucho mas que hacer ademas de capturar la excepcion pero es preferible no hacerlo y que el programa muera en lugar de enmascarar el problema real.

http://stackoverflow.com/questions/5510 ... lidity-c-c

407
C/C++ / Re: Comprobar de forma segura el acceso a memoria
« en: Sábado 24 de Octubre de 2009, 15:49 »
Si tenes un puntero invalido lo mas probable es que haya un problema en otra parte del programa ... ¿Para que quers hacer esto?

408
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 14:47 »
¿Es una duda realmente? Usa debug.exe y fijate ...

409
C/C++ / Re: fseek
« en: Jueves 22 de Octubre de 2009, 19:38 »
No, no es standard, supongo que es parte de esa API que menciono su- y MinGW tiene la costumbre de usar la CRT del VC++.

En la MSDN.

No logro que haga el enlazado pero asi deberia compilar:
Código: C++
  1. struct __stat64 buf;
  2.  

410
C/C++ / Re: fseek
« en: Jueves 22 de Octubre de 2009, 10:15 »
Cita de: "su -"
Si estas en una maquina de 64 bits, si que puede... en 32 bits se supone que tambien, no se si en el Glibc actual arreglaron el problema, pero aqui lo documentan muy bien.

Si, pero en una de 32 bits no, el standard no lo soporta. Ahi lo que documentan es la API que tiene las funciones esas que terminan en 64 (ftello64 por ejemplo esta mencionada) pero no son standard.

Cita de: "su -"
Me explique mal  :nosweat:
stat si es estandar, pero stat64 no lo es.

Exacto, no hay funcion standard que te sirva para obtener el tamaño de un archivo de mas de 4GB en un Windows o GNULinux de 32 bits, de una manera u otra tenes que recurrir a funciones no standard (VC++ soporta _stat64 por cierto, con guion bajo por no ser standard).

411
C/C++ / Re: codeblocks y Unicode
« en: Miércoles 21 de Octubre de 2009, 23:15 »
De nadas  :comp:

Las funciones de la API estan declaradas en windows.h (o en alguna otra cabecera que esta incluya directa o indirectamente), por ejemplo MessageBox sera MessageBoxA sino esta definido UNICODE/_UNICODE y MessageBoxW si lo esta. Extracto del SDK:

Código: C++
  1. WINUSERAPI
  2. int
  3. WINAPI
  4. MessageBoxA(
  5.     __in_opt HWND hWnd,
  6.     __in_opt LPCSTR lpText,
  7.     __in_opt LPCSTR lpCaption,
  8.     __in UINT uType);
  9. WINUSERAPI
  10. int
  11. WINAPI
  12. MessageBoxW(
  13.     __in_opt HWND hWnd,
  14.     __in_opt LPCWSTR lpText,
  15.     __in_opt LPCWSTR lpCaption,
  16.     __in UINT uType);
  17. #ifdef UNICODE
  18. #define MessageBox  MessageBoxW
  19. #else
  20. #define MessageBox  MessageBoxA
  21. #endif // !UNICODE
  22.  

412
C/C++ / Re: una colaboracion con este problema c++
« en: Miércoles 21 de Octubre de 2009, 19:37 »
No se hacen tareas.

413
C/C++ / Re: no consigo entender este error, por favor
« en: Miércoles 21 de Octubre de 2009, 18:31 »
Si, deberias hacerlo.

414
C/C++ / Re: no consigo entender este error, por favor
« en: Miércoles 21 de Octubre de 2009, 17:56 »
col sigue siendo un puntero nulo ............................. lo primero que hara strlen es *col para ver donde termina la cadena .....

415
C/C++ / Re: no consigo entender este error, por favor
« en: Miércoles 21 de Octubre de 2009, 17:27 »
Esto ya esta mal:

int tam=strlen(col)+1;

Ahi si le pasas NULL hay una excepcion como te dije, no es una cadena es un puntero nulo ...

416
C/C++ / Re: fseek
« en: Miércoles 21 de Octubre de 2009, 17:25 »
Cita de: "diego.martinez"
yo lo que suelo hacer para portabilidad es usar el patrón factory y crear una clase para win32 y otra para unix.

Una buena solucion para C++  :beer:

Cita de: "diego.martinez"
entonces simplemente uso la api en uno y la stat en el otro.

¿Pero stat no es capaz de devolver el tamaño de un archivo de mas de 4GB, verdad?

417
C/C++ / Re: Una de punteros y otra de recursividad
« en: Miércoles 21 de Octubre de 2009, 14:57 »
De nadas  :beer:

418
C/C++ / Re: no consigo entender este error, por favor
« en: Miércoles 21 de Octubre de 2009, 14:53 »
Si en el constructor estas haciendo simplemente una asignacion a un puntero a char entonces esta claro, tendras un puntero nulo y si lo desreferencias dara una excepcion ... podes pasale una cadena vacia "" en lugar de NULL ... o tener un buffer estatico ... hay varias formas de solucionarlo digamos.

419
C/C++ / Re: Una de punteros y otra de recursividad
« en: Miércoles 21 de Octubre de 2009, 13:46 »
Cita de: "r0d"
No sé... creo que no estaria un buena idea de hacer un kernel de un s.o. en c++. O habra que hacer tantas partes en C o assemblador que al final no quedara mucho c++.

Windows no tiene practicamente, por no decir ninguna aunque estoy casi seguro, ni una linea de assembly en el Kernel (hay algunas en el HAL eso si, fue diseñado de tal manera que el Kernel fuera portable). Muchas cosas se podrian expresar mejor en C++, se ahorrarian bastante codigo ... al menos esa es mi experiencia despues de escribir modulos de modo Kernel (drivers) para Windows en C y C++.

Cita de: "r0d"
El c++ tiene una capa mas que el c, y para cosas que tienen que ser muy muy rapidas, y dependiente de la architectura (procesador, hw en general) el c es mejor.
Mira, cuando hablaba de videojuegos, hay partes que son hechos en C (o en scripts como dices), las partes mas "criticas" digamos, pero en forma de libreria independientes.

No, C no es mas rapido que C++ de por si, todo depende las caracteristicas que uno use de C++ y del compilador, no te olvides que llevan años mejorando la optimizacion y no existe ninguna razon por la cual C++ tenga que ser mas lento que C, especialmente cuando podes escribir codigo que en realidad sea C.

420
C/C++ / Re: no consigo entender este error, por favor
« en: Miércoles 21 de Octubre de 2009, 12:51 »
¿Cual es el error exacto? Cuanto mas informacion (como una minima expresion compilable del codigo) des mas posibilidades habra de que te ayudemos.

421
C/C++ / Re: Una de punteros y otra de recursividad
« en: Miércoles 21 de Octubre de 2009, 12:49 »
Cita de: "r0d"
Por ejemplo, si tengo que hacer un pequeño progama que verifica, cada x secundos, si hay un fichero en una carpeta dada, y si hay un fichero, hace un par de copias de este fichero en otras carpetas, lo voy a hacer en C. Un main() de 20 lineas y basta.
Para hacer un videojuego de tipo word of warcraft, es impensable hacerlo en C.

Se puede resolver el mismo problema con C perfectamente y en la practica muchas veces lo son (otra cosa es que sea preferible, yo me quedo con C++). Los videojuegos suelen usar internamente scripts, esto lo hacian ya en los Monkey Island de principio de los 90s con engines escritos en assembly para 16 bits. Sin ir mas lejos la amplisima mayoria de los Kernels, de los S.O. modernos, como Windows o Linux, y sus drivers estan escritos en C, son de una gran complejidad y pueden ser escritos en C++ tambien.

Cita de: "r0d"
Si vale, pero digo en la manera de programar. De vez en cuando, tengo que hacer un poco de php, y me da igual que sea interpretado o compilado. Lo que veo es que el codigo resultante es muy parecido al C. Es en este sentido que hablaba.

Son otros paradigmas si ...

PD. goto y void* se usan en C++, lo que no podes hacer son castings implicitos como los tipicos de malloc.

422
C/C++ / Re: Una de punteros y otra de recursividad
« en: Miércoles 21 de Octubre de 2009, 12:33 »
El punto 4 no se como lo podes justificar. Y PHP es un lenguaje interpretado ...

423
C/C++ / Re: fseek
« en: Miércoles 21 de Octubre de 2009, 08:43 »
Si no hay funcion standard entonces da lo mismo usar un servicio de un S.O. en particular (ademas que estos suelen ser mas potentes y con #ifdef se soluciona cualquier problema de portabilidad del codigo).

424
C/C++ / Re: codeblocks y Unicode
« en: Martes 20 de Octubre de 2009, 23:11 »
Los #define tienen que estar antes del #include de windows.h para que funcione.

Código: C++
  1. #define UNICODE
  2. #define _UNICODE
  3.  
  4. #include <windows.h>
  5. #include <tchar.h>
  6.  
  7. int WINAPI WinMain(HINSTANCE actual,
  8.                     HINSTANCE previa,
  9.                     LPSTR parametros,
  10.                     int cmd)
  11. {
  12.     MessageBox(NULL, _T("cual"), NULL,0);
  13. }
  14.  

425
C/C++ / Re: fseek
« en: Martes 20 de Octubre de 2009, 22:58 »
¿Esa funcion es standard? Sino lo es entonces es un codigo poco elegante ...

Páginas: 1 ... 15 16 [17] 18 19 ... 205