Umwandeln einer Ausgabe aus time_t in ein besser lesbares Format

Matt Tellschaft

Grünschnabel
Hi,
Innerhalb meines Programms, das ich auf Gentoo2 Linux schreibe und mit gcc kompiliere, möchte ich aus einem festgegebenem Array einzelne Daten auslesen.
Diese möchte ich dann in einer lesbaren Form rausgeben.

Die Daten, die ich bekomme, sind vom Typ time_t, d.h. eine Ausgabe sieht wenn ich das Kommando innerhalb einer for-Schleife gebe:

Code:
printf(" %lt\n "; jobs.creation_time);

z.B. so aus:

Code:
1090488662me

Gibt es eine einfache Möglichkeit, diese Ausgabe beispielweise in dieser Form rauszugeben?

Code:
 Tue Jun 17 2003 13:45:02

Vielen Dank
 
in der stdlib in ctime:

// Decompose time
struct tm* gmtime(const time_t* timeval);
struct tm* localtime(const time_t* timeval);

siehe auch:
link
 
Und wo finde ich diese ctime?
Die einzige Library die ich finde ist: time.h .
Ist das die selbe?

Ich bin ein absoluter Anfänger, des wegen bitt ich um Nachsicht
 
hast du mal versucht mit gcc -x c++ zu übersetzen?

Andere Frage: sind die beiden genannten Funktionen in der time.h?

hab ich gerade noch gefunden: Link

Code:
/* localtime example */
#include <stdio.h>
#include <time.h>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current date and time are: %s", asctime (timeinfo) );
  
  return 0;
}
 
Ich habe kompiliert mit folgendem Kommando: gcc -x c++ -l cups gpjid.c
Er hat die Kompilation abgebrochen,:
undefined reference to '__gxx_personality-v()'

Was auch immer das ist.

Die beiden Funktionen sind übrigens in der time.h enthalten, zumindest sieht es so für mich aus.
 
dann lass das -x c++ weg und benutze die Funktion localtime (sieh Codebeispiel oben) aus der time.h (sind die gleichen, time.h wurde blos umbenannt in der stdlib.
 
Ok, das programm läuft.
Aber es zeigt leider das Datum: Thu Jan 1 01:00:00 1970
Da der Job aus dessen Tabelle ich eigentlich auslese gestern gelaufen ist , gehe ich davon aus, dass da etwas nicht stimmt.
 
lass dir gleichzeitig mal den Parameter für localtime anzeigen. Das sieht mir sehr nach 0 aus. Der Parameter gibt nämlich die Milisekunden seit einem bestimmten Datum an.
 
Zurück