VL53L0X communication with BeagleBone Black using c language

I have beagle bone black I have i2c communication code in c but I trouble communicating the VL53L0X sensor using the I2C Communication in C program.

Below is my I2c2 source code in beagle bone Black.

    #include<stdio.h>
    #include<rc/i2c.h>
    #include<rc/time.h>
    #include<rc/pinmux.h>
    #define I2C_BUS 2 //P9_19,P9_20
    #define Dev_Addr 4
    #define WAIT_US 100000*

    int main()
    {
    	int a,b,d,f;
    	uint8_t* e; 
    	rc_usleep(WAIT_US);
    	rc_usleep(WAIT_US);
    	a = rc_i2c_init (I2C_BUS , Dev_Addr);
    	printf("Intialising a bus %d. \n",a);
    	uint8_t c = 0;
    	while(1)
    	{
    //		b = rc_i2c_send_byte(I2C_BUS,c)	;
    //		printf("Writing a byte %d = %d. \t",c,b);
    		c += 1;
    		rc_usleep(WAIT_US);
    		f = rc_i2c_read_byte(I2C_BUS, Dev_Addr, e);
    		if(*e>=0)
    		{
    			printf("read data = %d ,flag = %d . \n", *e, f);
    		}
    	}
    	d = rc_i2c_close(I2C_BUS);
    	printf("Closing a bus %d. \n",d);
    	return 0;
    }

The above code is working

So no other way to gets a solution ?

Thank you.