Nåh jeg fandt en løsning. Men en lille advarsel for dem som vil prøve programmet: settimeofday() ændrer system klokken! og for at programmet skal kunne køre skal man være super user (sudo)
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <sys/time.h>
int main()
{
struct tm *mytime;
time_t rawtime, now;
struct timeval tv, *tvptr;
char buf[80];
tvptr = &tv;
/*
*Hent tiden (epoc)
*/
time(&rawtime);
/*
*localtime() modtager en time_t struct og returnerer en pointer
*til en tm struct
*/
mytime = localtime(&rawtime);
/*
*Her ændres tiden til det man ønsker...
*/
mytime->tm_sec = 10;
mytime->tm_min = 10;
mytime->tm_hour = 10;
/*
*mktime retunerer en time_t og justerer time_t structen
*således at time_t structen bliver som ønsket, via tm structen
*/
now = mktime(mytime);
/*
*time_t variablen sættes i timeval structen
*/
tv.tv_sec = now;
/*
*settimeofday sætter systemtiden til hvad tv.tv_sec er sat til.
*/
if(settimeofday(tvptr, NULL) == -1)
perror("settimeofday");
while(1)
{
/*Hent tiden*/
time(&now);
/*Formater tiden til noget "brugbart..."*/
strftime(buf, 80, "%H:%M:%S", localtime(&now));
/*Print tiden*/
printf("%s\r", buf);
fflush(stdout);
usleep(1000000);
}
return 0;
}
En udmærket side som forklarer time.h:
http://www.cplusplus.com/reference/clibrary/ctime/mktime.htmlSend et svar arne_v :)