1/* Ltrace Test : count-record.c. 2 Objectives : Verify that Ltrace can count all the system calls in 3 execution and report a summary on exit. 4 5 This file was written by Yao Qi <qiyao@cn.ibm.com>. */ 6 7#include <stdio.h> 8#include <unistd.h> 9#include <sys/syscall.h> 10#include <sys/stat.h> 11#include <errno.h> 12 13void exit (int); 14 15#define BUF_SIZE 100 16 17/* Do as many operations as possible to record these calls. */ 18int 19main () 20{ 21 FILE* fp; 22 char s[]="system_calls"; 23 char buffer[BUF_SIZE]; 24 struct stat state; 25 26 fp = fopen ("system_calls.tmp", "w"); 27 if (fp == NULL) 28 { 29 printf("Can not create system_calls.tmp\n"); 30 exit (0); 31 } 32 33 fwrite(s, sizeof(s), 1, fp); 34 fseek (fp, 0, SEEK_CUR); 35 fread(buffer, sizeof(s), 1, fp); 36 fclose(fp); 37 38 getcwd (buffer, BUF_SIZE); 39 chdir ("."); 40 symlink ("system_calls.tmp", "system_calls.link"); 41 remove("system_calls.link"); 42 rename ("system_calls.tmp", "system_calls.tmp1"); 43 stat ("system_calls.tmp", &state); 44 access ("system_calls.tmp", R_OK); 45 remove("system_calls.tmp1"); 46 47 mkdir ("system_call_mkdir", 0777); 48 rmdir ("system_call_mkdir"); 49 50 return 0; 51} 52