C getopt múltiplo valor

Meu argumento é assim

./a.out -i file1 file2 file3

Como posso utilizargetopt() obter 3 (ou mais) arquivos de entrada? Estou fazendo algo parecido com isto:

while ((opt = getopt(argc, argv, "i:xyz.."))!= -1){
  case 'i':
     input = optarg; 
     break;
  ...
}

Eu recebo apenas ofile1; como conseguirfile2, file3?