Comportamento do Cygwin '(no) dosfilewarning'

3

Pergunta original

A variável de ambiente CYGWIN do Cygwin e seu conteúdo têm efeito em vários aspectos do ambiente do Cygwin. Se CYGWIN contiver nodosfilewarning , então

Cygwin will warn the first time a user uses an "MS-DOS" style path name rather than a POSIX-style path name

conforme declarado por uma das páginas de perguntas frequentes do Cygwin .

O que é primeira vez ? Uma vez por dia? Uma vez entre o computador é reiniciado?

Eu tinha definido CYGWIN=nodosfilewarning , mas ainda às vezes Cygwin me avisa que eu uso caminhos estilo MS-DOS. Se eu configurá-lo para dosfilewarning (e reiniciar meu shell) não consigo disparar o aviso não importando o que (como cd C:\Windows - suponho que isso é suficiente MS-DOS-ish ). / p>

Eu não sei exatamente se a variável CYGWIN precisa ser definida no nível do sistema operacional ou no meu shell Cygwin, no entanto, tentei as duas sem sucesso. Por sem sucesso quero dizer, se a variável for definida como dosfilewarning minha suposição é que o Cygwin deve me avisar toda vez que eu digitar algo como cd C:\Windows (o que não faz).

Como posso verificar se defini essa variável estúpida corretamente e se minhas configurações estão em vigor? O FAQ do Cygwin dá pouca ajuda sobre este problema em particular.

Atualizar

Graças a resposta do JdeBP , cheguei à seguinte conclusão.

A variável CYGWIN pode ser definida no nível do SO ou em um shell do Cygwin.

cd C:\Windows não aciona o aviso, mas ls C:\Windows (fala sobre consistência, hein?).

Por enquanto, as configurações nodosfilewarning realmente não reportam nenhum aviso para o comando mencionado anteriormente, no entanto eu originalmente escrevi este post porque mesmo assim eu disse ao Cygwin para não relatar esses avisos que ele ainda fazia algumas vezes. Infelizmente eu não sei quando e em quais circunstâncias (atualizarei a pergunta se eu ainda encontrar esses avisos).

    
por Kohányi Róbert 22.12.2011 / 08:46

1 resposta

2

Todo processo que usa a biblioteca de tempo de execução do Cygwin mapeia nesse processo uma parte da memória compartilhada. Isso contém alguns dados que são compartilhados entre todos os processos que usam (essa instalação específica) a biblioteca de tempo de execução do Cygwin.

Um dos sinalizadores nessa memória compartilhada é o sinalizador warned_msdos . Se o sinal warned_msdos for false e se dosfilewarning estiver definido na variável de ambiente CYGWIN que o processo teve na inicialização do processo, você verá o aviso. Quando o aviso é emitido, o sinalizador warned_msdos é definido como true .

Note, importante:

  • A verificação não será feita em primeiro lugar por nenhum processo que tenha nodosfilewarning .
  • Se a verificação não for feita, warned_msdos permanecerá definido como false .
  • A memória compartilhada permanece ativa até que todos os processos do Cygwin que a usam terminem.
por 23.12.2011 / 16:50

Tags