[Linux][RS232] Can not write to arduino unless serial monitor is open

I have a C program that is writing to /dev/ttyACM0 file (RS232).

The system is working only if the Serial Monitor is opened :{

My question is:

Is there additional serial port configuration needed to communicate to the Arduino ?

I use Serial.readString() on the Arduino side, I never had such issue using readBytes() nore read(), ...

Additional details:

The Arduino seems to reset each time I configure (C program side) the RS232 line.
The LED behaves the same as when I push the reset button.
When I send the datas to the arduino, the RX blinks but the TX stays led.

When I open the "serial monitor" the behaviour is:

The LED doesn't blink and the TX blinks ((as I send a message to the serial port thru
Serial.println() for debugging)) and when the C program does the write() operation the RX blinks but TX still blinks.

The C programs uses the function as describes below:

int ConfigureArduino(char *pFichier,speed_t vitesse)
{
int portdesc;
struct termios options;

portdesc=open(pFichier, O_RDWR | O_NOCTTY | O_NONBLOCK);
if(portdesc>0)
{
fcntl(portdesc,F_SETFL,0);

tcgetattr(portdesc, &options);
cfsetispeed(&options, vitesse);
cfsetospeed(&options, vitesse);
options.c_cflag |= (CLOCAL | CREAD);
options.c_oflag &= ~(IXON | IXOFF | IXANY);
options.c_cflag &= ~CRTSCTS;

tcsetattr(portdesc, TCSANOW, &options);

int Terminal_flag;
//Terminal_flag |= (TIOCM_DTR | TIOCM_RTS);
Terminal_flag &= ~(TIOCM_DTR | TIOCM_RTS);

ioctl(portdesc,TIOCMBIS,&Terminal_flag);

}
return portdesc;
}

Which Arduino? A number if models (328P based and 2560 based) do reset when you open the serial connection to them.

You probably need to set DTR or RTS or both. When you open the Serial Monitor it does that.

...R