44int main(
int argc,
char **argv)
48 int fd = open(
"/dev/perf", O_RDWR);
50 printf(
"Perf open failed.\n");
56 }
else if ((argc == TWO_ARGS) && strcmp(argv[1],
"start") == 0) {
58 }
else if ((argc == THREE_ARGS) && strcmp(argv[1],
"start") == 0) {
59 size_t id = strtoul(argv[THREE_ARGS - 1], NULL, 0);
61 }
else if ((argc == TWO_ARGS) && strcmp(argv[1],
"stop") == 0) {
63 }
else if ((argc == THREE_ARGS) && strcmp(argv[1],
"read") == 0) {
64 size_t size = strtoul(argv[THREE_ARGS - 1], NULL, 0);
69 char *buf = (
char *)
malloc(size);
76 }
else if ((argc == TWO_ARGS) && strcmp(argv[1],
"list") == 0) {
78 }
else if ((argc >= THREE_ARGS) && strcmp(argv[1],
"stat") == 0) {
80 }
else if ((argc >= THREE_ARGS) && strcmp(argv[1],
"record") == 0) {
83 printf(
"Unsupported perf command.\n");
void PerfStart(int fd, size_t sectionId)
void PerfPrintBuffer(const char *buf, ssize_t num)
ssize_t PerfRead(int fd, char *buf, size_t size)
int main(int argc, char **argv)
void * malloc(size_t size)
动态分配内存块大小
void free(void *ptr)
释放ptr所指向的内存空间
void PerfRecord(int fd, int argc, char **argv)
void PerfStat(int fd, int argc, char **argv)