Hi tudmuis,
It sounds like you are using DAQmx 8.0.x for Linux. To answer your first question, no, DAQmxStartTask is not needed. DAQmxRead will implicitly start the task if it is not already running. If you set the "number of samples per channel" for DAQmxRead to be the number of samples for your finite task, every time you execute the DAQmxRead your task will run once.
You can improve performace by setting the task state to commit right after all the task configuration is done, but before doing the first DAQmxStartTask or DAQmxRead call. By doing this, much of the hardware configuration pushed to the hardware so that it does not need to be done every time DAQmxStartTask or DAQmxRead is called. You can set this by using this function definition:
Steven K.
National Instruments
Software Engineer