1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. NonSense

Beiträge von NonSense

  • Campussoftware

    • NonSense
    • 25. Februar 2010 um 14:28
    Zitat von blackx_zero

    wollte fragen, ob man als tutor (da mitarbeiter der tu wien) campussoftware beziehen kann (nach entsprechender registrierung)?

    Das interessiert mich auch. Hast Du in der Zwischenzeit was neues herausgefunden?

  • Java-junior für Verteilte Applikation

    • NonSense
    • 20. Januar 2009 um 23:24

    Hi,

    ist es noch aktuell?

  • Skype status Indikator

    • NonSense
    • 30. Juni 2007 um 16:57

    Ich suche einen Skype status Indikator. Habs mit diesen von:

    Code
    http://www.onlinestatus.org/


    vesucht aber mit Skype funktioniert es nicht. Mit ICQ schon.
    Weiss jemand ueber irgendwelchem Indikator das funktioniert?

  • fork() und pipes

    • NonSense
    • 12. Juni 2007 um 11:40

    Danke es hat sich schon erledigt.

  • Becks green lemon

    • NonSense
    • 30. Mai 2007 um 22:24

    Was ist da zum Lachen? Es ist doch ein Biermischgetränk.:sudern:

  • Becks green lemon

    • NonSense
    • 30. Mai 2007 um 21:15

    Wo in Wien kann man dieses Bier (Becks green lemon) kaufen? Im Billa hab ich nur klassisches Becks gefunden.

  • fork() und pipes

    • NonSense
    • 28. Mai 2007 um 14:17

    Hallo, ich versuche 2 Kindprozesse von dem urspünglichen Prozess zu erzeugen die folgende Funktionalität haben:
    Der Vater liest zeichenweise von stdin und schreibt die eingelesene Zeichen in der ersten Pipe. Das erste Kind liest von dieser Pipe die Zeichen aus und gibt diese weiter an die zweite Pipe. Das zweite Kind liest diese Zeichen von der zeiten Pipe und gibt diese auf stdout aus.

    Ich bin nicht sicher ob ich das zweite fork() an der richtigen Stelle habe, bzw. das zweite wait().

    Kompilierbar ist es problemlos aber nach der ausführung werden die zeichen nur gelesen aber nichts wird ausgegeben. Den Programm kann man auch nicht mit strg+D terminieren.

    Hat jemand eine Idee was ich da falsch mache?

    Source:

    C
    /* Program:    mygzip
     * Author:    Filip Hianik 0426173
     * Date:    27.05.2007
     * Purpose:    Der Programm liest von stdin Files die mit gzip zu komprimieren sind und komprimiert diese in einem File (falls dessen Name als Argument übergeben wird) oder in stdout.
     * Usage:    mygzip [file]
     * Beispiel:    3b_mygzip
     */
    
    
    /*
     * ******************************************************************************************* defines ****
     */
    
    
    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <string.h>
    #include <limits.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    
    
    /*
     * ******************************************************************************************** globals ***
     */
    
    
    const char *szCommand = "<not yet set>";                        /* command name */
    static int pPipe[2];
    static int pPipe2[2];
    static pid_t pid, pid2;
    static FILE *pStream = (FILE *) 0;
    static FILE *pStream2 = (FILE *) 0;
    FILE *fdopen (int filedes, const char *mode);
    
    
    /*
     * ***************************************************************************************** prototypes ***
     */
    
    
    void BailOut (const char *szMessage);                        /* forward declaration */
    
    
    /*
     * ****************************************************************************************** functions ***
     */
    
    
    void PrintError (const char *szMessage)
    {
       if (errno != 0)
       {
          (void) fprintf (stderr, "%s: %s - %s\n", szCommand, szMessage, strerror (errno));
       }
       else
       {
          (void) fprintf (stderr, "%s: %s\n", szCommand, szMessage);
       }
    }
    
    
    void FreeResources (void)
    {
       if (pStream != (FILE *) 0)
       {
          if (fclose ((FILE *) pStream) == EOF)
          {
             pStream = (FILE *) 0;
             BailOut ("Can not close pipe stream!");
          }
          pStream = (FILE *) 0;                                /* pipe no longer open */
       }
    
    
       if (pStream2 != (FILE *) 0)
       {
          if (fclose ((FILE *) pStream2) == EOF)
          {
             pStream2 = (FILE *) 0;
             BailOut ("Can not close pipe stream 2");
          }
          pStream2 = (FILE *) 0;
       }
    }
    
    
    void BailOut (const char *szMessage)
    {
       if (szMessage != (const char *) 0)                        /* print error message? */
       {
          PrintError (szMessage);
       }
       FreeResources ();
       exit (EXIT_FAILURE);
    }
    
    
    void AllocateResources (void)
    {
       if (pipe (pPipe) == -1)
       {
          BailOut ("Can not create pipe!");
       }
    
    
       if (pipe (pPipe2) == -1)
       {
          BailOut ("Can not create pipe 2!");
       }
    }
    
    
    void Usage (void)
    {
       (void) fprintf (stderr, "USAGE: %s [file]\n", szCommand);
       BailOut ((const char *) 0);
    }
    
    
    void FatherProcess (void)
    {
       int c;
    
    
       if (close (pPipe[0]) == -1)
       {
          BailOut ("Error closing the read descriptor!");
       }
    
       if ((pStream = fdopen (pPipe[1], "w")) == (FILE *) NULL)
       {
          BailOut ("Can not open pipe for writing");
       }
    
       while ((c = fgetc (stdin)) != EOF)
       {
          fputc (c, pStream);
       }
    
    
       FreeResources ();
    }
    
    
    void ChildProcess (void)
    {
       int c;
    
    
       if (close (pPipe[1]) == -1)
       {
          BailOut ("Error closing the write descriptor!");
       }
    
    
       if ((pStream = fdopen (pPipe[0], "r")) == (FILE *) NULL)
       {
          BailOut ("Can not open pipe for reading!");
       }
    
    
       if (close (pPipe2[0]) == -1)
       {
          BailOut ("Error closing the write descriptor 2!");
       }
    
    
       if ((pStream2 = fdopen (pPipe2[1], "w")) == (FILE *) NULL)
       {
          BailOut ("Can not open pipe2 for writing!");
       }
    
    
       while ((c = fgetc (pStream)) != EOF)
       {
          fputc (c, pStream2);
       }
    
    
       if (ferror (pStream))
       {
          BailOut ("Can not read from pipe!");
       }
    
    
       FreeResources ();
    }
    
    
    void ChildProcess2 (void)
    {
       int c;
       if (close (pPipe2[1]) == -1)
       {
          BailOut ("Error closing the write descriptor!");
       }
    
    
       if ((pStream2 = fdopen (pPipe2[0], "r")) == (FILE *) NULL)
       {
          BailOut ("Can not open pipe2 for reading!");
       }
    
    
       while ((c = fgetc (pStream2)) != EOF)
       {
          fputc (c, stdout);
       }
    
    
       if (ferror (pStream2))
       {
          BailOut ("Can not read from pipe2!");
       }
    
    
       FreeResources ();
    }
    
    
    int main (int argc, char **argv)
    {
       pid_t wpid, wpid2;
       int status, status2;
    
    
       szCommand = argv[0];
    
    
       if (argc > 2)
       {
          Usage();
       }
    
    
       AllocateResources ();
    
    
       switch (pid = fork ())
       {
          case -1:
             BailOut ("Fork failed!");
          break;
    
    
          case 0:
             ChildProcess ();
          break;
    
    
          default:
    
    
             switch (pid2 = fork ())
             {
                case -1:
                   BailOut ("Fork2 failed!");
                break;
    
    
                case 0:
                   ChildProcess2 ();
                break;
    
    
                default:
                   FatherProcess ();               
                break;
             }
    
             while ((wpid = wait (&status)) != pid)
             {
                if (wpid != -1)
                {
                   continue;
                }
                if (errno == EINTR)
                {
                   continue;
                }
                BailOut ("Error waiting for child process 1!");
             }
    
    
             while ((wpid2 = wait (&status2)) != pid2)
             {
                if (wpid2 != -1)
                {
                  continue;
                }
    
    
                if (errno == EINTR)
                {
                  continue;
                }
    
    
                BailOut ("Error waiting for child process 2!");
             }
    
    
    
    
          break;      
       }
       exit (EXIT_SUCCESS);
    }
    Alles anzeigen

    danke für jede Hilfe.
    mfg NonSense

  • Was ist da falsch?

    • NonSense
    • 4. Mai 2007 um 09:50

    Habs geloest mit der Reihenfolge, zuerst Initialisierungen und erst dann Zuweisungen.

  • Was ist da falsch?

    • NonSense
    • 3. Mai 2007 um 01:06

    Habs auch mit:

    Code
    char* line;
    ...
    line = (char*) malloc(sizeof(char)*MAX_LENGTH+1);

    versucht aber diese Warnung kommt immer wieder vor...

  • Was ist da falsch?

    • NonSense
    • 3. Mai 2007 um 01:03
    Zitat von ChristophM

    ich würd mal sagen ohne -ansi kompilieren.

    Ohne -ansi ist es bissl Problem weil die Richtlinien für Sysprog sind leider fest vorgegeben:

    Code
    Das Programm muss mit          gcc -ansi -pedantic -Wall -g -c filename.c          ohne Warnings und Info-Meldungen compiliert          werden können (siehe Buch S. 182!).          Sehen Sie keine Möglichkeit, eine          Compilerwarnung zu entfernen, so fragen          Sie einen Betreuer.
  • Was ist da falsch?

    • NonSense
    • 3. Mai 2007 um 00:43

    Bekomme diesen Warning:

    Code
    einaus.c: In function âmainâ:
    einaus.c:114: warning: ISO C90 forbids mixed declarations and code

    Zugehörige Zeile:

    Code
    char line[MAX_LENGTH+1];

    MAX_LENGTH ist defined in header der in einaus.c inkludiert ist.
    Was soll ich ändern, damit diese Warnung weg ist?

  • Char array leeren?

    • NonSense
    • 2. Mai 2007 um 17:43
    Zitat von ThomasW

    Ich glaube Dein Problem ist, dass Du vergisst '\0' am Ende von invertline zu setzen. Dadurch gibt er immer den ganzen puffer aus.
    Versuche einmal, ob invertline[x+1] = '\0' vor der for-Schleife das Problem löst.

    Toll, es hat geklappt :)
    Danke:thumb:

  • Char array leeren?

    • NonSense
    • 2. Mai 2007 um 17:20

    Hmm eigentlich hat es mir nicht sehr geholfen.
    Ich versuche einen invertstr program zu machen, es liest zeilenweise aus dem stdin, invertiert die Zeile und gibt wieder aus.
    Wenn ich das invertline[0] = '\0' benutze dann ist das invertline für immer leer.
    Hier der Source:

    C
    #include <errno.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    #define MAX_LENGTH 50
    
    
    
    
    
    
    int main (int argc, char **argv)
    {
       char line[MAX_LENGTH+1];
       char invertline[MAX_LENGTH];
    
       int x, i;
       while (fgets (line, sizeof (line), stdin) != NULL)
       {
    
          x = (strlen (line) - 1);
          for (i = 0; i < (strlen (line) -1); i++)
          {
             invertline[x--] = line[i];
          }
          printf ("line size: %i\n", strlen (invertline));
          printf ("inverted line: %s\n", invertline);
          invertline[0] = '\0';
       }
    
       return 0;
    }
    Alles anzeigen
  • Char array leeren?

    • NonSense
    • 2. Mai 2007 um 17:10

    Wie mache ich in C ein char array wieder leer?
    Hab in char line[MAX_LENGTH] was eingelesen und brauche es wieder zu leeren.

  • Sake und Meeresalgen NORI

    • NonSense
    • 28. März 2007 um 16:30

    Hat jemand Ahnung, wo man solche Sachen kaufen konnte?

  • float to string

    • NonSense
    • 6. November 2006 um 18:57

    Wie mache ich aus einem float ein string?
    Könnte jemand helfen? Danke.

  • 1 WIN XP 2 PC´s???

    • NonSense
    • 30. September 2006 um 21:26

    Hi, ich hab das Win XP mit der TU Lizenz im LMZ gekauft und besitze 2 PC´s (Standpc und Laptop). Kann ich das Win auf beide installieren oder nur auf einen?

  • Löschen aus einer Liste in Prolog

    • NonSense
    • 6. April 2006 um 02:24

    Na ja, danke. Aber mir interessiert wie man es selbst ausprogramieren kann. Ohne das eingebaute Prädikat zu nutzen. Hab es mit diesem delete versucht aber eine Sache gefällt mir nicht. Wenn ich z.B. eine Liste [a,b,b,c] habe und möchte das Element b löschen. Kann man das irgendwie machen, dass nur das erste b gelöscht wird und nicht jede b?

  • Löschen aus einer Liste in Prolog

    • NonSense
    • 6. April 2006 um 01:33

    Kann mir jemand helfen einen 3-stelligen Prädikat loesche/3 zu schreiben, der ein Element aus einer Liste löscht?
    Es sollte so funktionieren:
    loesche(b,[a,b,c,d],X).
    X=[a,c,d]

    thx

  • zeigt her eure desktops...

    • NonSense
    • 6. Juni 2005 um 21:43

    Meins sieht so aus.

Rechtliches

Impressum

Datenschutzerklärung