time_t is defined in time.h as :
typedef unsigned int time_t;
In my opinion it should be defined as :
typedef long time_t;
Am I right ?
Depends on processor. You need a 32-bit data type, and you are talking about ARM, so you are in the clear.
It isn't number of seconds since january 1970 but number of seconds since 00:00 January 1st 1970, or since 1969.