Portál AbcLinuxu, 8. května 2025 02:18
potrebujem zistit aktualny cas a datum, vyuzitie procesora pripadne pamate, nazov stroja, OS a architektury.
head -2 /proc/driver/rtc cat /proc/loadavg head -3 /proc/meminfo cat /proc/sys/kernel/hostnamea možno niečo z /proc/cpuinfo
%rdi
, ne v %rbx
.
struct timeval
; se musí předat v registru RDI, pokud buildíš pro x86-64. Na x86 by ti ten kód fungovat měl. Víc si přečti třeba tady: https://stackoverflow.com/a/2538212
Na x86-64 mi funguje toto:
#include <sys/syscall.h> #include <sys/time.h> #include <time.h> #include <stdio.h> #include <string.h> int main() { const long SYSCALL_NO = SYS_gettimeofday; long ret; struct timeval tv; char date[65], time[65]; asm("syscall;" : "=a"(ret) : "a" (SYSCALL_NO), "D" (&tv) : "rcx", "r11" ); if (ret != 0) { printf("FAIL: %s\n", strerror(ret)); return 1; } strftime(date, 65, "%d.%m.%Y", localtime((time_t *) &tv.tv_sec)); strftime(time, 65, "%T", localtime((time_t *) &tv.tv_sec)); printf("Date: %s %s \n", date, time); return 0; }
-masm=intel
do CFLAGS
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.