help for serial/usb PC-ARduino

Hello, could someone tell me why I am obliged to start a terminal emulation program (eg minicom)
to communicate with my arduino board (using a C program and a serial connection / usb)

Thank you for your help

Hello, could someone tell me why I am obliged to start a terminal emulation program (eg minicom)
to communicate with my arduino board (using a C program and a serial connection / usb)

Because you are not opening the serial port correctly in your C program. Fix line 28.

Thanks for your response

Fix line 28.

i'am not understand what you mean.

I open the port in this way

uart0_filestream = open("/dev/ttyACM0",O_RDWR | O_NOCTTY);
	if (uart0_filestream == -1)
	{
		//ERROR - CAN'T OPEN SERIAL PORT
		printf("Error - Unable to open UART. Ensure it is not in use by another application\n");
	}
	struct termios options;
	tcgetattr(uart0_filestream, &options);
	cfsetispeed(&options, B9600); //<Set baud rate
	cfsetospeed(&options, B9600); //<Set baud rate
	options.c_cflag = B9600 | CS8 | CLOCAL | CREAD; //<Set baud rate
	options.c_iflag = IGNPAR | ICRNL;
	options.c_oflag = 0;
	tcflush(uart0_filestream, TCIFLUSH);
	tcsetattr(uart0_filestream, TCSANOW, &options);
fcntl(uart0_filestream, F_SETFL, 0);

and i read

for ( count=0; count<5;){
			rx_length = -1;
			char recevchar;
				while (rx_length < 1){
					errno = 0;
					rx_length = read(uart0_filestream,&recevchar,1);
					printf("rx_length : %d\n", rx_length);
					printf("errno : %d\n", errno);
					printf("caractere : %c\n",recevchar);
					if (errno == EAGAIN){
						//printf("%d\n", errno);
						rx_length = -1;
						sleep(1);
			  		}
				}
			rx_buffer[count] = recevchar;
			++count
		}

when the emulator is open my program ( C programme) returns the byte read

i'am not understand what you mean.

Sure you did. You posted (some of) your code.