Пример #1
0
int __wrap_open64(const char *path, int oflag, ...)
{
	int ret = sys_rtdm_open(path, oflag);
	if (ret >= 0)
		return ret;
#ifdef HAVE_OPEN64
	else if (ret == -ENODEV || ret == -ENOSYS) {
		va_list ap;

		va_start(ap, oflag);

		ret = __real_open64(path, oflag, va_arg(ap, mode_t));

		va_end(ap);

		if (ret >= __pse51_rtdm_fd_start) {
			__real_close(ret);
			errno = EMFILE;
			ret = -1;
		}
#endif
	} else {
		errno = -ret;
		ret = -1;
	}

	return ret;	
}
Пример #2
0
/******** the wrap calls ********/
int __wrap_open64(const char *path, int oflag, ... ) {
    int ret_val;
    struct timeval start, end;
    
    /* check whether there is the 3rd arg */
    if (oflag & O_CREAT) {
        va_list mode_arg;
        va_start(mode_arg, oflag);
        int mode = va_arg(mode_arg, int);
        va_end(mode_arg);

        gettimeofday(&start, NULL);
        ret_val = __real_open64(path, oflag, mode);
        gettimeofday(&end, NULL);
    } else {