C Read Stdin Binário Opções


Arranga para que FILEHANDLE seja lido ou escrito em modo binário ou de texto em sistemas onde as bibliotecas de tempo de execução distinguem entre arquivos binários e de texto. Se FILEHANDLE é uma expressão, o valor é tomado como o nome do arquivo de arquivo. Retorna verdadeiro no sucesso, caso contrário retorna undef e define (errno). Em alguns sistemas (em geral, sistemas baseados em DOS e no Windows) binmode é necessário quando você não está trabalhando com um arquivo de texto. Por uma questão de portabilidade, é uma boa idéia usar sempre quando apropriado e nunca usá-lo quando não for apropriado. Além disso, as pessoas podem configurar suas I / O para serem, por padrão, codificadas em UTF8 Unicode, e não bytes. Em outras palavras: independentemente da plataforma, use binmode em dados binários, como imagens, por exemplo. Se a LAYER estiver presente, ela é uma única string, mas pode conter várias diretivas. As diretrizes alteram o comportamento do arquivo de arquivo. Quando a LAYER estiver presente, usar binmode em um arquivo de texto faz sentido. Se LAYER for omitido ou especificado como. Raw the filehandle é feito adequado para transmitir dados binários. Isso inclui desligar a possível tradução CRLF e marcá-la como bytes (em oposição aos caracteres Unicode). Note-se que, apesar do que pode estar implícito na programação de Perl (o Camel, 3ª edição) ou em qualquer outro lugar. Raw não é simplesmente o inverso de. Crlf. Outras camadas que afetariam a natureza binária do fluxo também são desabilitadas. Veja PerlIO. Perlrun. E a discussão sobre a variável de ambiente PERLIO. O. Bytes. Crlf. Utf8. E quaisquer outras diretrizes do formulário. São chamados de camadas de E / S. O pragma aberto pode ser usado para estabelecer camadas de E / S padrão. O parâmetro LAYER da função binmode é descrito como DISCIPLINE em Programming Perl, 3rd Edition. No entanto, desde a publicação deste livro, por muitos conhecidos como Camel III, o consenso da nomeação dessa funcionalidade passou de disciplina para camada. Toda a documentação desta versão do Perl, portanto, refere-se a camadas e não a disciplinas. Agora volte para a documentação regularmente agendada. Para marcar FILEHANDLE como UTF-8, use. Utf8 ou. Codificação (UTF - 8). Utf8 apenas marca os dados como UTF-8 sem mais verificação, enquanto. A codificação (UTF - 8) verifica os dados para serem realmente válidos UTF-8. Mais detalhes podem ser encontrados na codificação PerlIO ::. Em geral, binmode deve ser chamado depois do aberto, mas antes que qualquer I / O seja feita no arquivo. Chamar binmode normalmente esvazia todos os dados de saída armazenados em buffer pendentes (e talvez dados de entrada pendentes) no identificador. Uma exceção para isso é o. Camada de codificação que altera a codificação de caractere padrão do identificador. O. A camada de codificação às vezes precisa ser chamada no meio do fluxo, e não descarrega o fluxo. A codificação também implícita empurra em cima de si o. Camada utf8 porque internamente Perl opera em caracteres Unicode codificados em UTF8. O sistema operacional, drivers de dispositivo, bibliotecas C e sistema de tempo de execução de Perl conspiram para permitir que o programador trate um único caractere (n) como o terminador de linha, independentemente da representação externa. Em muitos sistemas operacionais, a representação de arquivo de texto nativo corresponde à representação interna, mas em algumas plataformas a representação externa de n é composta por mais de um caractere. Todas as variantes do Unix, Mac OS (antigo e novo) e arquivos StreamLF no VMS usam um único caractere para finalizar cada linha na representação externa do texto (mesmo que esse personagem seja CARRIAGE RETURN em antigos, sabores pré-Darwin do Mac SO, e LINE FEED no Unix e na maioria dos arquivos VMS). Em outros sistemas como OS / 2, DOS e os vários sabores do MS-Windows, seu programa vê um n como um simples CJ. Mas o que está armazenado em arquivos de texto são os dois caracteres cM cJ. Isso significa que, se você não usa binmode nesses sistemas, as seqüências cJ do cM no disco serão convertidas em n na entrada e qualquer n no seu programa será convertido de volta para o cJ cJ na saída. Isto é o que você quer para arquivos de texto, mas pode ser desastroso para arquivos binários. Outra consequência do uso de binmode (em alguns sistemas) é que os marcadores especiais de fim de arquivo serão vistos como parte do fluxo de dados. Para sistemas da família Microsoft, isso significa que, se seus dados binários contiverem cZ. O subsistema de E / S considerá-lo como o fim do arquivo, a menos que você use binmode. Binmode é importante não apenas para operações de leitura e impressão, mas também ao usar a leitura. procurar. Sysread. Syswrite e diga (veja perlport para mais detalhes). Veja o / e as variáveis ​​em perlvar para como configurar manualmente suas seqüências de terminação de linha de entrada e saída. Define o arquivo cujo nome é especificado no nome do arquivo do parâmetro e o associa a um fluxo que pode ser identificado em operações futuras pelo ponteiro do ARQUIVO retornado . As operações que são permitidas no fluxo e como elas são executadas são definidas pelo parâmetro de modo. O fluxo retornado é totalmente armazenado por buffer, se for conhecido por não se referir a um dispositivo interativo (veja setbuf). O ponteiro retornado pode ser desassociado do arquivo chamando fclose ou freopen. Todos os arquivos abertos são fechados automaticamente no término normal do programa. O ambiente em execução suporta, pelo menos, arquivos FOPENMAX abertos simultaneamente. Parâmetros filename Seqüência C contendo o nome do arquivo a ser aberto. Seu valor deve seguir as especificações do nome do arquivo do ambiente em execução e pode incluir um caminho (se suportado pelo sistema). Cadeia de modo C contendo um modo de acesso a arquivos. Pode ser: ler: abrir arquivo para operações de entrada. O arquivo deve existir. Escreva: crie um arquivo vazio para operações de saída. Se um arquivo com o mesmo nome já existe, seu conteúdo é descartado e o arquivo é tratado como um novo arquivo vazio. Anexar: Abra o arquivo para saída no final de um arquivo. As operações de saída sempre escrevem dados no final do arquivo, expandindo-o. As operações de reposicionamento (fseek. Fsetpos. Rebobinar) são ignoradas. O arquivo é criado se não existir. Leitura / atualização: abra um arquivo para atualização (tanto para entrada quanto para saída). O arquivo deve existir. Escrever / atualizar: Crie um arquivo vazio e abra-o para atualização (tanto para entrada quanto para saída). Se um arquivo com o mesmo nome já existir, seus conteúdos serão descartados e o arquivo será tratado como um novo arquivo vazio. Anexar / atualizar: Abra um arquivo para atualização (tanto para entrada e saída) com todas as operações de saída que escrevem dados no final do arquivo. As operações de reposicionamento (fseek. Fsetpos. Remwind) afetam as próximas operações de entrada, mas as operações de saída movem a posição de volta ao final do arquivo. O arquivo é criado se não existir. Com os especificadores de modo acima, o arquivo está aberto como um arquivo de texto. Para abrir um arquivo como um arquivo binário. Um caractere b deve ser incluído na seqüência de modo. Este caractere B adicional pode ser anexado no final da string (fazendo assim os seguintes modos compostos: rb, wb, ab, rb, wb, ab) ou seja inserido entre a letra e o sinal para os modos mistos (rb, Wb, ab). O novo padrão C (C2011, que não faz parte de C) adiciona uma nova subespecificadora padrão (x), que pode ser anexada a qualquer especificador w (para formar wx. Wbx. Wx ou wbx / wbx). Este sub-especificador força a função a falhar se o arquivo existe, em vez de substituí-lo. Se os caracteres adicionais seguem a seqüência, o comportamento depende da implementação da biblioteca: algumas implementações podem ignorar caracteres adicionais, de modo que, por exemplo, um t adicional (às vezes usado para indicar explicitamente um arquivo de texto) é aceito. Em algumas implementações de biblioteca, abrir ou criar um arquivo de texto com modo de atualização pode tratar o fluxo em vez disso como um arquivo binário. Os arquivos de texto são arquivos que contêm sequências de linhas de texto. Dependendo do ambiente onde o aplicativo é executado, pode ocorrer alguma conversão de caracteres especiais nas operações de entrada / saída no modo de texto para adaptá-los a um formato de arquivo de texto específico do sistema. Embora em alguns ambientes não ocorram conversões, tanto os arquivos de texto quanto os arquivos binários são tratados da mesma maneira, usando o modo apropriado melhora a portabilidade. Para os arquivos abertos para atualização (aqueles que incluem um sinal), em que as operações de entrada e saída são permitidas, o fluxo deve ser descarregado (fflush) ou reposicionado (fseek. Fsetpos. Rewind) antes de uma operação de leitura que segue uma operação de escrita. O fluxo deve ser reposicionado (fseek. Fsetpos. Rebobinar) antes de uma operação de escrita que segue uma operação de leitura (sempre que essa operação não atingiu o final do arquivo). Valor de retorno Se o arquivo for aberto com êxito, a função retorna um ponteiro para um objeto FILE que pode ser usado para identificar o fluxo em operações futuras. Caso contrário, um ponteiro nulo é retornado. Na maioria das implementações da biblioteca, a variável errno também é definida como um código de erro específico do sistema em caso de falha.

Comments

Popular posts from this blog

Best Trading Strategies Forex Trading

Stock Options Divorce Arizona

Opções Trading Volume History