My understanding was that "cachorro" is Brazilian and "cão" is European. Now I've seen "um cachorro quente" (a "hot-dog" I presume) in a book of European Portuguese. So, is "cachorro" in Portugal only used for this type of meal or is it also typical word for ar animal?
Yes, "cachorro" is used in Portugal, but it means a puppy, a young dog.
It is used especially of baby or very young dogs, in which case de diminutive “cachorrinho” is the word usually used.
For adult dogs, the word used is "cão".
According to the Priberam dictionary:
ca·chor·ro |ô| (origem duvidosa)
Cão com menos de seis meses; cão jovem. [imagem]
[Portugal: Madeira, Brasil] Cão adulto. [imagem]
Cria, geralmente não desmamada, de animal semelhante ao cão.
"cachorro", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/cachorro [consultado em 15-06-2020].
For the hot-dog, both "cachorro" and "cachorro-quente" are used, but the short version is preferred - for brevity.
In Portugal is most used "cachorro" for the "hot-dog" and "cão" for the animal, but "cachorro" is also used for animals, generally "cachorrinho" for a puppy dog.
In Brazil it most used "cachorro" for the animal and "cachorro quente" for "hot-dog". "cão" is not so common, and in some regions "cão" can even mean a very restless person, who does a lot of mess, for example "esse garoto é um cão", something like "this boy is a dog".