Пример #1
0
int _fprintf(FILE *fp, const char *s, ...)
{
	va_list args;
	int res;
	int c,i;

	c = 0;
	va_start(args, s);
	for(c = 0; c < strlen(s); ++c) {
		if(s[c] == '%') {
			char *p;
			int j,k;
			++c;
			switch(s[c]) {
				case 's':
					for(p = va_arg(args, char *), i = 0; i < strlen(p); ++i)
						_fputc(p[i], fp);
					p = NULL;
				break;
				case 'd':
					j = va_arg(args, int);
					if((p = p_itoc(j)) == NULL) {
						_fprintf(stderr, "Error: could not convert number to string.\n");
						continue;
					}
					p = p_rnum(p);
					while(*p != 0)
						_fputc(*p++, stdout);
				break;
				case 'c':
					k = va_arg(args, int);
					_fputc(k, stdout);
				break;
				default:
					_fprintf(stderr, "%d: needs an argument.\n", c);
			}
			continue;
		} else if(s[c] == '\\') {
Пример #2
0
int fputc(int character, FILE *stream)
{
    //printf("INTERCEPTED Fputc\n");

    clock_t start = clock();

    int ret = _fputc(character,stream);

    clock_t end = clock();

    double called_time = (double)(start-program_start)/(double)(CLOCKS_PER_SEC);

    double exec_time = (double)(end-start)/(double)(CLOCKS_PER_SEC);

    fprintf(logFile,"%lf %lf fputc %d %p = %d\n",called_time,exec_time,character,stream,ret);

    return ret;
}