C ++ strtok - uso múltiple con más buffers de datos

Tengo poco problema con el usostrtok() función. Estoy analizando dos archivos. Los primeros carga el archivo 1 enbuffer. Este archivo contiene el nombre del segundo archivo que necesito cargar. Ambos archivos se leen línea tras línea. Mi código se ve así:

char second_file_name[128] = { "" };
char * line = strtok( buffer, "\n" );
while( line != NULL )
{
  if ( line[0] = 'f' )
  {
    sscanf( line, "%*s %s", &second_file_name );
    LoadSecondFile( second_file_name );
  }
  // processing other lines, not relevant for question
  line = strtok( NULL, "\n" );
}

Mientras que laLoadSecondFile(...) La función funciona de la misma manera, así:

char * line = strtok( buffer, "\n" );
while( line != NULL )
{
  // process file data
  line = strtok( NULL, "\n" );
}

¿Cuál es mi problema, después de llamar a laLoadSecondFile(...) función, lastrtok() el puntero utilizado para analizar el primer archivo se "desordena". En lugar de darme la línea que sigue al nombre del segundo archivo, no me da nada, entiéndalo como "completo disparate". ¿Entiendo bien que esto es causado porstrtok() ¿Puntero siendo compartido en programa, no solo en función? Si es así, ¿cómo puedo "hacer una copia de seguridad" del puntero destrtok() ¿Se usa para analizar el primer archivo antes de usarlo para analizar el segundo archivo?

Gracias por cualquier consejo. Aclamaciones.

Respuestas a la pregunta(3)

Su respuesta a la pregunta