Come ottenere il timestamp attuale in millisecondi dal 1970 proprio come fa Java

In Java, possiamo usare System.currentTimeMillis() per ottenere il timestamp corrente in Milliseconds dal momento storico che è –

la differenza, misurata in millisecondi, tra l’ora corrente e la mezzanotte, 1 ° gennaio 1970 UTC.

In C ++ come ottenere la stessa cosa?

Attualmente sto usando questo per ottenere il timestamp attuale –

 struct timeval tp; gettimeofday(&tp, NULL); long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds cout << ms << endl; 

Questo sembra giusto o no?