해석좀 부탁드립니다.. 리눅스 Memory 구하는건데 잘몰라서.. 수정을 못하고 있어요..
활력초
결과가 딱 붙어서
이렇게
1033488:15908:2031608:1554148
나와야 하는데
이렇게
1033488: 15908: 2031608: 1554148
나오네요.. 부탁드립니다..
C언어는 처음이라.. 모르겠네요..
#include stdio.h
#include string.h
#include stdlib.h
int Get_MEMORY_Info() ;
main(int argc , char *argv[] )
{
double MemTotal ;
double MemFree ;
double SwapTotal ;
double SwapFree ;
int ret ;
ret = Get_MEMORY_Info( &MemTotal , &MemFree , &SwapTotal , &SwapFree ) ;
printf( %15.f: , MemTotal ) ;
printf( %15.f: , MemFree ) ;
printf( %15.f: , SwapTotal ) ;
printf( %15.f\n , SwapFree ) ;
}
int Get_MEMORY_Info( MemTotal , MemFree , SwapTotal , SwapFree )
double *MemTotal ;
double *MemFree ;
double *SwapTotal ;
double *SwapFree ;
{
FILE *pf ;
char line[1000] ;
char line2[1000] ;
char command[100] ;
int length ;
char *token;
char *search = ;
sprintf( command , cat /proc/meminfo ) ;
if ( (pf=popen(command,r)) == NULL ) return -1 ;
if ( fgets(line,sizeof(line),pf) == NULL )
{
pclose(pf) ;
return -2 ;
}
while(1)
{
length=strlen(line) ;
line[length-1] = 0x00 ;
strcpy( line2 , line ) ;
if ( !strncmp(line, MemTotal:, 9 ) )
{
// token = strtok(line2, search);
// token = strtok(NULL, search);
*MemTotal = atof( token ) ;
}
if ( !strncmp( line , MemFree: , 8 ) )
{
token = strtok(line2, search);
token = strtok(NULL, search);
*MemFree = atof( token ) ;
}
if ( !strncmp( line , SwapTotal: , 10 ) )
 sp; {
token = strtok(line2, search);
token = strtok(NULL, search);
*SwapTotal = atof( token ) ;
}
if ( !strncmp( line , SwapFree: , 9 ) )
{
token = strtok(line2, search);
token = strtok(NULL, search);
*SwapFree = atof( token ) ;
}
if ( fgets(line,sizeof(line),pf) == NULL ) break ;
}
pclose(pf);
return 1 ;
}
-
난초 2025-09-09
아.. 이해 했음.;;; 죄송 ㅋㅋㅋ %.f로 해결했어요~~
-
소미 2025-09-09
그건 상관 없는데 결과 값 사이에 공백을 없애는 방법좀...
