avesudra ya dio una explicación sobre el condicional.
Solo un comentario: siendo estrictos no es necesario utilizar la función bzero como programación defensiva (para proteger contra el escenario donde sscanf falle).
En lugar de esa funcion se puede almacenar un '\0' en la primera posicion del array. En el contexto de cadenas el efecto es el mismo:
char linea[1024];
/* ... */
if (fgets(linea
, 1024, fich
)){ argumento[0] = '\0';
sscanf(linea
, "%s %[^\n]", mandato
, argumento
); }
Una mejor opción es verificar el valor de retorno de sscanf
Un saludo