⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watchprops.c

📁 Android 一些工具
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <cutils/properties.h>#include <sys/atomics.h>#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_#include <sys/_system_properties.h>extern prop_area *__system_property_area__;typedef struct pwatch pwatch;struct pwatch{    const prop_info *pi;    unsigned serial;};static pwatch watchlist[1024];static void announce(const prop_info *pi){    char name[PROP_NAME_MAX];    char value[PROP_VALUE_MAX];    char *x;        __system_property_read(pi, name, value);    for(x = value; *x; x++) {        if((*x < 32) || (*x > 127)) *x = '.';    }    fprintf(stderr,"%10d %s = '%s'\n", (int) time(0), name, value);}int watchprops_main(int argc, char *argv[]){    prop_area *pa = __system_property_area__;    unsigned serial = pa->serial;    unsigned count = pa->count;    unsigned n;        if(count >= 1024) exit(1);    for(n = 0; n < count; n++) {        watchlist[n].pi = __system_property_find_nth(n);        watchlist[n].serial = watchlist[n].pi->serial;    }    for(;;) {        do {            __futex_wait(&pa->serial, serial, 0);        } while(pa->serial == serial);        while(count < pa->count){            watchlist[count].pi = __system_property_find_nth(count);            watchlist[count].serial = watchlist[n].pi->serial;            announce(watchlist[count].pi);            count++;            if(count == 1024) exit(1);        }        for(n = 0; n < count; n++){            unsigned tmp = watchlist[n].pi->serial;            if(watchlist[n].serial != tmp) {                announce(watchlist[n].pi);                watchlist[n].serial = tmp;            }        }    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -