- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void usage(char *progname)
{
fprintf(stderr,"Usage: %s [-i <interval>]\n",progname);
exit(1);
}
int main(int argc, char *argv[])
{
int arg;
size_t alloc = 1000;
uid_t userid = getuid();
while ((arg = getopt(argc,argv,"")) != -1) {
switch(arg) {
default:
usage(argv[0]);
break;
}
}
//const char *basecmd = "sudo turbostat -s -i 1 2>&1";
char ghz[8];
char *junkbuffer = malloc(sizeof(char)*1000);
const char *basecmd = "turbostat -s -i 1 2>&1";
seteuid(0);
setuid(0);
FILE *turboPipe = popen(basecmd,"r");
seteuid(userid);
setuid(userid);
/* ignore first line */
getline(&junkbuffer,&alloc,turboPipe);
fscanf(turboPipe,"%*s %s %*s %*s %*s %*s %*s %*s %*s %*s %*s\n",ghz);
free(junkbuffer);
fprintf(stdout,"%s\n",ghz);
pclose(turboPipe);
return 0;
}
Установил новый Debian на ноут. Искал инфу по Intel TurboBoost.
Наткунлся на это
http://technicallyliving.blogspot.com/2012/06/intel-turboboost-and-linux.html
Улыбнул вайл-свитч. Что мешало автору обойтись без свитча?
bormand 10.05.2013 08:51 # +5
Не вижу ничего смешного (см. ниже).
> Что мешало автору обойтись без свитча?
Копипаста. while(arg = getopt(...)) + switch (arg) это же стандартная идиома для парсинга опций. Поэтому автор это или скопипастил неглядя с другого проекта, или намеренно оставил как задел на будущее, когда опции все-таки появятся.
P.S. Судя по коду в usage() опция там действительно планировалась.
denis90 10.05.2013 09:34 # −1