• Jueves 28 de Marzo de 2024, 12:43

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.


Temas - adocrates

Páginas: [1]
1
C/C++ / Re: Procesos Defunct
« en: Martes 12 de Octubre de 2004, 18:55 »
Tengo un inconveniente, estoy desarrollando un demonio en Unix que ejecuta en background un programa administrador de colas de procesos, el cual ante algun cambio de estado en la BD ejecuta en background programas asociados que distribuyen y procesan los datos de la BD :

Para ello, utilizo system() y del shell nohup (para independizar del proceso padre) y & (para demonizar el proceso que se ejecuta) :

prg demonio()
       ... otras cosas
       system("nohup administradordecolas > administradordecolas.out 2>&1 &");
       ... demas cosas

prg administradordecolas()
       ...
       if(estado == 1)
          system("nohup programaasociado  > programaasociado.out 2>&1 &");
       ...

PERO, quedan procesos defunct (zombies), que por lo que entiendo, quedan asi porque el proceso padre llamador se muere antes que el hijo.

Modifique el programa, cambie el system() por fork() y execvp() y mas encima agregue signal(SIGCLD, wait_on_child); que se supone que espera el proceso hijo y lo termina adecuadamente :

wait_on_child()
{
   int status;
   while( wait3(&status, WNOHANG, (struct rusage *) 0) > 0 ) ;
}

Lamentablemente, el problema persiste.

Agradeceria alguna informacion para resolver esto.   Gracias.

2
Oracle / Rollback Exception
« en: Viernes 19 de Diciembre de 2003, 03:44 »
Tengo algunos problemillas con rollback y procedimientos almacenados.

Existen EXCEPTION para ROLLBACK ?


Gracias.

3
C/C++ / Transformar Imagen
« en: Lunes 14 de Julio de 2003, 17:29 »
Tengo que documentar un sistema en MSDOS y los pantallazos estan en archivos con formato de memoria de video texto, o sea son de 4000 bytes porque son 80 columnas * 25 filas * 2 bytes (atributo + caracter). Es el mismo que usa gettext() y puttext() de Turbo C.

Alguien conoce un utilitario que transforme esto a jpg u otro formato para ponerlo en el informe ?

Gracias

4
Dudas informáticas / Transformar Imagen
« en: Lunes 14 de Julio de 2003, 17:25 »
Tengo que documentar un sistema en MSDOS y los pantallazos estan en archivos con formato de memoria de video texto, o sea son de 4000 bytes porque son 80 columnas * 25 filas * 2 bytes (atributo + caracter). Es el mismo que usa gettext() y puttext() de Turbo C.

Alguien conoce un utilitario que transforme esto a jpg u otro formato para ponerlo en el informe ?

Gracias.

5
HTML / Necesito un Formateador de codigo HTML
« en: Miércoles 27 de Noviembre de 2002, 04:25 »
Busco un formateador de HTML, que ordene, tabule y alinee los tags, etc...

Tengo que revisar una pagina y es un lio, todo desordenado y entrecortado...!!!

Encontre el web del Doctor HTML, pero es mucha parafernalia para lo simple que necesito.


Gracias.:D

6
Sobre los Foros de SoloCodigo / Re: Algunas Ideas...
« en: Martes 26 de Noviembre de 2002, 21:51 »
Me gusta contestar y ayudar a los demas, pero me molesta la ingratitud... quiero saber las notas que nos hemos sacado con las tareas que he ayudado a solucionar... !!!

Seria interesante habilitar algun procedimiento para probar el verdadero interes en participar y...   que exista feed back !!!

Por ejemplo,  contestar para ver la respuesta o posts con tips (que puede ser un atributo tipo insertar algo).

Inscribirte para ver un tema popular y tener una cantidad prudente de posteos para participar (un poco extremo).

Tambien que sea obligado ingresar un email valido y enviar la inscripcion al foro a dicho email, hay mucha gente sin email y entonces como funciona lo de ¿Recibir confirmación por e-mail de nuevas respuestas?...
Estoy viendo que algunos pasteles pusieron un post y NUNCA sabran que se lo constestaron, Y ESO ES DEFRAUDANTE para quien se tomo el tiempo y molestia de contestar... NO HAY NADA MAS FUSTRANTE QUE HACER ALGO PARA NADA...

Incluso podrias habilitar una opcion para que te lleguen por email todos los post entrantes del tema en el que estas inscrito...

El chat no existe...!!!

Seria interesante organizar en una fecha y hora, algun debate en vivo con los moderadores o algun sensei invitado...

En fin NO todos tenemos tiempo para atender periodicamente el foro y algunas respuestas NUNCA seran respondidas, pero es entretenido ver que algunos problemas tienen solucion y puedes facilitar la vida a los demas.




PD. Me acorde, se puede cambiar el tag para italica ?  o Deshabilitarlo con el tag para codigo ? o que no sea una sola letra... ej. [italic] en vez de (es que si los usas como indice en un codigo... se ve italico)...:D

7
Sobre los Foros de SoloCodigo / Re: Problemas....!!!
« en: Jueves 7 de Noviembre de 2002, 21:29 »
There was an error with the database that runs this site. An e-mail has been dispatched to the Board administrator informing them of the problem.


If you would like to contact the admin directly at *****@**********.***

The specific Error was:
Duplicate entry '1364' for key 1

8
C# / Linkz de sitios C#
« en: Lunes 28 de Octubre de 2002, 18:49 »

9
C# / Busco Diagrama de Clases C#
« en: Lunes 28 de Octubre de 2002, 16:47 »
Amigos :

Estoy metiendome con C# y NO encuentro un diagrama de las clases, metodos y atributos del framework o superclase System.
Todo lo que he encontrado son ejemplos y tutoriales, y la idea es tener todo el mapa de las clases para saber que cosas utilizar, donde y con que parametros.

Alguna sugerencia o link sera muy agradecido.

Para que entiendan, les regalo esta joyita (aunque desenfocado )... un diagrama de las clases JAVASCRIPT (puede que falten clases) :

// global functions and properties
Navigator navigator;
String escape(String s);
String unescape(String s);
String eval(String code);
JavaClass getClass(JavaObject javaobj);
boolean isNaN(value);
float parseFloat(String s);
int parseInt(String s);
Object taint(value);
Object untaint(value);

// built-in classes and their method, properties
class Anchor extends Link {}
class Area extends Link {}
class Array {
   public Array();
   public Array(int size);
   public Array(value0,value1,...);
   public Array(...);
   public int length;
   public String join(String separator="") const;
   public void reverse();
   public void sort();
   public void sort(orderFunc);
   public Object operator [](int i);
}
class Boolean {
   public Boolean(value);
   public String toString() const;
   public boolean valueOf() const;
}
class Button /*extends Element*/ {
   public const Form form;
   public const String name;
   public const String type;
   public const String value;
   public void blur();
   public void click();
   public void focus();
   public void onblur();
   public void onclick();
   public void onfocus();
}
class Checkbox /*extends Element*/ {
   public boolean checked;
   public const boolean defaultChecked;
   public const Form form;
   public const String name;
   public const String type;
   public String value;
   public void blur();
   public void click();
   public void focus();
   public void onblur();
   public void onclick();
   public void onfocus();
}
class Date {
   public Date();
   public Date(int milliseconds);
   public Date(String datestring);
   public Date(int year, int month, int day);
   public Date(int year, int month, int day, int hours, int minutes, int seconds);
   public int getDate() const;
   public int getDay() const;
   public int getHours() const;
   public int getMinutes() const;
   public int getSeconds() const;
   public int getTime() const;
   public int getTimezoneOffset() const;
   public int getYear() const;
   public static int parse(String datestring);
   public void setDate(int date);
   public void setHours(int hours);
   public void setMinutes(int minutes);
   public void setMonth(int month);
   public void setSeconds(int seconds);
   public void setTime(int milliseconds);
   public void setYear(int year);
   public String toGMTString() const;
   public String toLocaleString() const;
   public static int UTC(int year,int month,int day,int hours=0,int minutes=0,int seconds=0);
   public String prototype;
}
class Document {
   public String alinkColor;
   public Anchor[] anchors;
   public JavaObject[] applets;
   public String bgColor;
   public String cookie;
   public String domain;
   public JavaObject[] embeds;
   public String fgColor;
   public Form forms;
   public Image[] images;
   public const String lastModified;
   public String linkColor;
   public Link[] links;
   public Location location;
   public Plugin[] plugins;
   public const String referrer;
   public const String title;
   public const String URL;
   public String vlinkColor;
   public void clear();
   public void close();
   public void open();
   public void write(value,...);
   public void writeln(value,...);
   public void onload();
   public void onunload();
}
class Element {
   public boolean checked;
   public const boolean defaultChecked;
   public const String defaultValue;
   public const Form form;
   public int length;
   public const String name;
   public Option[] options;
   public int selectedIndex;
   public const String type;
   public String value;
   public void blur();
   public void click();
   public void focus();
   public void select();
   public void onblur();
   public void onclick();
   public void onfocus();
   public void onchange();
}
class FileUpload {
   public const Form form;
   public const String name;
   public const String type;
   public const String value;
   public void blur();
   public void focus();
   public void select();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Form {
   public String action;
   public Element[] elements;
   public String encoding;
   public String method;
   public String target;
   public void reset();
   public void submit();
   public void onreset();
   public void onsubmit();
}
class Frame extends Window {
}
class Function {
   public Function(String argname, ..., String body);
   public String[] arguments;
   public Function caller;
   public Object prototype;
   public String toString() const;

}
class Hidden /*extends Element*/ {
   public const Form form;
   public const String name;
   public const String type;
   public const String value;
}
class History {
   public String current;
   public int length;
   public String next;
   public String previous;
   public void back();
   public void forward();
   public void go(int relative);
   public String toString() const;
}
class Image {
   public Image(int width=0, int height=0);
   public const int border;
   public const boolean complete;
   public const int height;
   public const int hspace;
   public String lowsrc;
   public const String name;
   public String src;
   public const int vspace;
   public const int width;
   public void onabort();
   public void onerror();
   public void onload();

}
class JavaArray {
   public int length;
   public JavaObject operator [](int i);
}
class JavaClass {
   // No se que va aqui, puede ser cualquier cosa
   // Ejemplo  java.lang.Exception
}
class JavaMethod {
   // Aqui puede haber cualquier clase o metodo Java
   // Ejemplo  java.lang.System.getProperty()
}
class JavaObject {
   // Aqui puede haber cualquier instancia de una clase Java
   // Ejemplo  var s = new java.lang.String()
}
class JavaPackage {
   // Aqui puede haber cualquier paquete Java
   // Ejemplo  java.io   or   Packages.omg.corba
}
class Link {
   public String hash;
   public String host;
   public String hostname;
   public String href;
   public String pathname;
   public String port;
   public String protocol;
   public String search;
   public String target;
   public void onclick();
   public void onmouseout();
   public void onmouseover();
}
class Location {
   public String hash;
   public String host;
   public String hostname;
   public String href;
   public String pathname;
   public String port;
   public String protocol;
   public String search;
   public void reload(boolean force=false);
   public void replace(String url);
}
class Math {
   public final float E;
   public final float LN10;
   public final float LN2;
   public final float LN10E;
   public final float LN2E;
   public final float PI;
   public final float SQRT1_2;
   public final float SQRT2;
   public static float abs(float x);
   public static float acos(float x);
   public static float asin(float x);
   public static float atan(float x);
   public static float atan2(float x);
   public static int ceil(float x);
   public static float cos(float x);
   public static float exp(float x);
   public static int floor(float x);
   public static float log(float x);
   public static float max(float x, float y);
   public static float min(float x, float y);
   public static float random();
   public static int round(float x);
   public static float sin(float x);
   public static float sqrt(float x);
   public static float tan(float x);
}
class MimeType {
   public const String description;
   public JavaObject enabledPlugin;
   public const String suffixes;
   public const String type;
}
class Navigator {
   public String appCodename;
   public String appName;
   public String appVersion;
   public MimeType[] mimeTypes;
   public Plugin[] plugins;
   public String userAgent;
   public boolean javaEnabled();
   public boolean taintEnabled();
}
class Number {
   public Number(value);
   public final float MAX_VALUE;
   public final float MIN_VALUE;
   public final float NaN;
   public final float NEGATIVE_INFINITY;
   public final float POSITIVE_INFINITY;
   public String toString() const;
   public float valueOf() const;
   public String prototype;
}
class Object {
   public Object();
   public Object(value);
   public Function constructor;
   public void assign(value);
   public String eval(String code);
   public String toString() const;
   public Object valueOf() const;
}
class Option {
   public Option(String text, Object value=null, boolean defaultSelected=false, boolean selected=false);
   public const boolean defaultSelected;
   public const Form form;
   public const int index;
   public boolean selected;
   public String text;
   public String value;
}
class Packages {
   public JavaPackage java;
   public JavaPackage netscape;
   public JavaPackage sun;
}
class Password /*extends Element*/ {
   public const String defaultValue;
   public const Form form;
   public const String name;
   public const String type;
   public void blur();
   public void focus();
   public void select();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Plugin {
   public const String descriptoin;
   public const String filename;
   public const int length;
   public const String name;
}
class Radio /*extends Element*/ {
   public boolean checked;
   public const boolean defaultChecked;
   public const Form form;
   public const String name;
   public const String type;
   public String value;
   public void blur();
   public void focus();
   public void click();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Reset /*extends Element*/ {
   public const Form form;
   public const String name;
   public const String type;
   public String value;
   public void blur();
   public void focus();
   public void click();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Select {
   public const Form form;
   public int length;
   public const String name;
   public Option[] options;
   public int selectedIndex;
   public const String type;
   public void blur();
   public void focus();
   public void click();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class String {
   public String(value);
   public int length;
   public String prototype;
   public String anchor(String name) const;
   public String big() const;
   public String blink() const;
   public String bold() const;
   public char charAt(int n) const;
   public String fixed() const;
   public String fontcolor(String color) const;
   public String fontsize(int size) const;
   public int indexOf(String substring, int start=0) const;
   public String italics() const;
   public String lastIndexof(String substring, int start=length) const;
   public String link(String href) const;
   public String small() const;
   public String[] split(String delimeter="") const;
   public String strike() const;
   public String sub() const;
   public String substring(int from, int to=length) const;
   public String sup() const;
   public String toLowerCase() const;
   public String toUpperCase() const;
}
class Submit /*extends Element*/ {
   public const Form form;
   public const String name;
   public const String type;
   public const String value;
   public void blur();
   public void focus();
   public void click();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Text /*extends Element*/ {
   public const String defaultValue;
   public const Form form;
   public const String name;
   public const String type;
   public String value;
   public void blur();
   public void focus();
   public void select();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class Textarea /*extends Element*/ {
   public const String defaultValue;
   public const Form form;
   public const String name;
   public const String type;
   public const String value;
   public void blur();
   public void focus();
   public void select();
   public void onblur();
   public void onfocus();
   public void onchange();
}
class URL {
   public String hash;
   public String host;
   public String hostname;
   public String href;
   public String pathname;
   public String port;
   public String protocol;
   public String search;
}
class Window {
   public const boolean closed;
   public String defaultStatus;
   public Document document;
   public Frame[] frames;
   public History history;
   public int length;
   public Location location;
   public String name;
   public Navigator navigator;
   public void navigate();
   public Window opener;
   public Window parent;
   public Window self;
   public String status;
   public Window top;
   public Window window;
   public static void alert(String message);
   public void blur();
   public static void clearTimeout(timeoutId);
   public void close();
   public void confirm(String question);
   public void focus();
   public void navigate(String url);
   public void open(String url, String name, String features="", boolean replace=false);
   public void prompt(String message, String answer="");
   public void scroll();
   public void setTimeout();
   public void onblur();
   public void onerror();
   public void onfocus();
   public void onload();
   public void onunload();
}

:D

10
GNU/Linux / Bug de strcpy, Linux RH72
« en: Viernes 25 de Octubre de 2002, 23:08 »
Hola a todos !!!

Re100 me registre y espero ayudar en lo que se pueda al foro.

Depurando con la opcion -E de gcc encontre que un :

     strcpy(tmp,msg());

se transforma en esta macro :

     (__extension__ (__builtin_constant_p (msg()) ? (((size_t)(const void *)((msg()) + 1) - (size_t)(const
 void *)(msg()) == 1) && strlen (msg()) + 1 <= 8 ? __strcpy_small (tmp, __extension__ (((__const unsigned cha
r *) (__const char *) (msg()))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (msg()))[0]), __exte
nsion__ (((__const unsigned char *) (__const char *) (msg()))[4 + 1] << 8 | ((__const unsigned char *) (__con
st char *) (msg()))[4]), __extension__ (((((__const unsigned char *) (__const char *) (msg()))[0 + 3] << 8 |
((__const unsigned char *) (__const char *) (msg()))[0 + 2]) << 8 | ((__const unsigned char *) (__const char
*) (msg()))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (msg()))[0]), __extension__ (((((__con
st unsigned char *) (__const char *) (msg()))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (msg(
)))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (msg()))[4 + 1]) << 8 | ((__const unsigned cha
r *) (__const char *) (msg()))[4]), strlen (msg()) + 1) : (char *) memcpy (tmp, msg(), strlen (msg()) + 1)) :
 strcpy (tmp, msg())));

si se fijan puede ser PELIGROSA porque si msg() retorna memoria dinamica o si accesa a un archivo, lo hace 20 veces !!!

Solucion parche :

     aux=msg();
     strcpy(tmp,aux);
// o
//   memcpy(tmp,aux,strlen(aux)+1);

Soluciones definivas :

1.-Saltarse esa macro, aunque no se como.

2.-Reescribir el strcpy :

//decl de string.h, asi no hay warnings
char *strcpy (char *__restrict dst, __const char *__restrict src) __THROW
//char *strcpy(char *dst, char *src)
{
    if(dst == NULL || src == NULL)
    {
// Se puede asignar algo a errno
        return((char *)NULL);
    }
//version smart
    memcpy(dst,src,strlen(src)+1);
/*
//version original
    while ( *src )
    {
        *dst++ = *src++;
    }
    *dst = 0;
*/
    return(dst);
}


Salu2 desde Chile.

Páginas: [1]