@@ -443,12 +443,21 @@ msgid ""
443
443
"platform's default C :c:expr:`int` type, their value is masked to fit into "
444
444
"the C type."
445
445
msgstr ""
446
+ "``None``, inteiros, objetos bytes e strings (unicode) são os únicos objetos "
447
+ "nativos do Python que podem ser usados diretamente como parâmetros nessas "
448
+ "chamadas de função. ``None`` é passado como um ponteiro ``NULL`` em C, "
449
+ "objetos bytes e strings são passados como ponteiros para o bloco de memória "
450
+ "que contém seus dados (:c:expr:`char *` ou :c:expr:`wchar_t *`). Inteiros em "
451
+ "Python são passados como o tipo padrão da plataforma em C :c:expr:`int`, e "
452
+ "seu valor é mascarado para se encaixar no tipo em C."
446
453
447
454
#: ../../library/ctypes.rst:205
448
455
msgid ""
449
456
"Before we move on calling functions with other parameter types, we have to "
450
457
"learn more about :mod:`ctypes` data types."
451
458
msgstr ""
459
+ "Antes de prosseguirmos com a chamada de funções com outros tipos de "
460
+ "parâmetros, precisamos aprender mais sobre os tipos de dados :mod:`ctypes`."
452
461
453
462
#: ../../library/ctypes.rst:212 ../../library/ctypes.rst:2262
454
463
msgid "Fundamental data types"
@@ -457,6 +466,8 @@ msgstr "Tipos de dados fundamentais"
457
466
#: ../../library/ctypes.rst:214
458
467
msgid ":mod:`ctypes` defines a number of primitive C compatible data types:"
459
468
msgstr ""
469
+ ":mod:`ctypes` define uma série de tipos de dados primitivos compatíveis com "
470
+ "C:"
460
471
461
472
#: ../../library/ctypes.rst:217
462
473
msgid "ctypes type"
@@ -683,13 +694,15 @@ msgstr "int ou ``None``"
683
694
684
695
#: ../../library/ctypes.rst:267
685
696
msgid "The constructor accepts any object with a truth value."
686
- msgstr ""
697
+ msgstr "O construtor aceita qualquer objeto com um valor verdade. "
687
698
688
699
#: ../../library/ctypes.rst:269
689
700
msgid ""
690
701
"All these types can be created by calling them with an optional initializer "
691
702
"of the correct type and value::"
692
703
msgstr ""
704
+ "Todos esses tipos podem ser criados chamando-os com um inicializador "
705
+ "opcional do tipo e valor corretos::"
693
706
694
707
#: ../../library/ctypes.rst:272
695
708
msgid ""
@@ -701,11 +714,20 @@ msgid ""
701
714
"c_ushort(65533)\n"
702
715
">>>"
703
716
msgstr ""
717
+ ">>> c_int()\n"
718
+ "c_long(0)\n"
719
+ ">>> c_wchar_p(\" Olá, mundo\" )\n"
720
+ "c_wchar_p(139878537078816)\n"
721
+ ">>> c_ushort(-3)\n"
722
+ "c_ushort(65533)\n"
723
+ ">>>"
704
724
705
725
#: ../../library/ctypes.rst:280
706
726
msgid ""
707
727
"Since these types are mutable, their value can also be changed afterwards::"
708
728
msgstr ""
729
+ "Como esses tipos são mutáveis, seus valores também podem ser alterados "
730
+ "posteriormente::"
709
731
710
732
#: ../../library/ctypes.rst:282
711
733
msgid ""
@@ -719,6 +741,15 @@ msgid ""
719
741
"-99\n"
720
742
">>>"
721
743
msgstr ""
744
+ ">>> i = c_int(42)\n"
745
+ ">>> print(i)\n"
746
+ "c_long(42)\n"
747
+ ">>> print(i.value)\n"
748
+ "42\n"
749
+ ">>> i.value = -99\n"
750
+ ">>> print(i.value)\n"
751
+ "-99\n"
752
+ ">>>"
722
753
723
754
#: ../../library/ctypes.rst:292
724
755
msgid ""
@@ -727,6 +758,10 @@ msgid ""
727
758
"point to, *not the contents* of the memory block (of course not, because "
728
759
"Python string objects are immutable)::"
729
760
msgstr ""
761
+ "Atribuir um novo valor a instâncias dos tipos de ponteiro :class:"
762
+ "`c_char_p`, :class:`c_wchar_p` e :class:`c_void_p` altera o *local de "
763
+ "memória* para o qual eles apontam, *não o conteúdo* do bloco de memória "
764
+ "(claro que não, porque objetos string do Python são imutáveis)::"
730
765
731
766
#: ../../library/ctypes.rst:297
732
767
msgid ""
@@ -745,6 +780,20 @@ msgid ""
745
780
"Hello, World\n"
746
781
">>>"
747
782
msgstr ""
783
+ ">>> s = \" Olá, mundo\" \n"
784
+ ">>> c_s = c_wchar_p(s)\n"
785
+ ">>> print(c_s)\n"
786
+ "c_wchar_p(139878542513936)\n"
787
+ ">>> print(c_s.value)\n"
788
+ "Olá, mundo\n"
789
+ ">>> c_s.value = \" Opa, beleza?\" \n"
790
+ ">>> print(c_s) # o local da memória foi alterado\n"
791
+ "c_wchar_p(139878536944240)\n"
792
+ ">>> print(c_s.value)\n"
793
+ "Opa, beleza?\n"
794
+ ">>> print(s) # primeiro objeto está inalterado\n"
795
+ "Olá, mundo\n"
796
+ ">>>"
748
797
749
798
#: ../../library/ctypes.rst:312
750
799
msgid ""
@@ -755,6 +804,12 @@ msgid ""
755
804
"``raw`` property; if you want to access it as NUL terminated string, use the "
756
805
"``value`` property::"
757
806
msgstr ""
807
+ "No entanto, tome cuidado para não passá-los para funções que esperam "
808
+ "ponteiros para memória mutável. Se precisar de blocos de memória mutáveis, o "
809
+ "ctypes possui uma função :func:`create_string_buffer` que os cria de várias "
810
+ "maneiras. O conteúdo do bloco de memória atual pode ser acessado (ou "
811
+ "alterado) com a propriedade ``raw``; se quiser acessá-lo como uma string "
812
+ "terminada em NUL, use a propriedade ``value``:"
758
813
759
814
#: ../../library/ctypes.rst:319
760
815
msgid ""
@@ -777,6 +832,24 @@ msgid ""
777
832
"10 b'Hi\\ x00lo\\ x00\\ x00\\ x00\\ x00\\ x00'\n"
778
833
">>>"
779
834
msgstr ""
835
+ ">>> from ctypes import *\n"
836
+ ">>> p = create_string_buffer(3) # cria um buffer de 3 bytes, "
837
+ "inicializado para NUL bytes\n"
838
+ ">>> print(sizeof(p), repr(p.raw))\n"
839
+ "3 b'\\ x00\\ x00\\ x00'\n"
840
+ ">>> p = create_string_buffer(b\" Opa\" ) # cria um buffer contendo uma "
841
+ "string terminando com NUL\n"
842
+ ">>> print(sizeof(p), repr(p.raw))\n"
843
+ "4 b'Opa\\ x00'\n"
844
+ ">>> print(repr(p.value))\n"
845
+ "b'Opa'\n"
846
+ ">>> p = create_string_buffer(b\" Oi\" , 10) # cria um buffer de 10 bytes\n"
847
+ ">>> print(sizeof(p), repr(p.raw))\n"
848
+ "10 b'Oi\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00'\n"
849
+ ">>> p.value = b\" Oi\" \n"
850
+ ">>> print(sizeof(p), repr(p.raw))\n"
851
+ "10 b'Oi\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00'\n"
852
+ ">>>"
780
853
781
854
#: ../../library/ctypes.rst:336
782
855
msgid ""
@@ -785,17 +858,24 @@ msgid ""
785
858
"block containing unicode characters of the C type :c:type:`wchar_t`, use "
786
859
"the :func:`create_unicode_buffer` function."
787
860
msgstr ""
861
+ "A função :func:`create_string_buffer` substitui a antiga função :func:`!"
862
+ "c_buffer` (que ainda está disponível como um apelido). Para criar um bloco "
863
+ "de memória mutável contendo caracteres Unicode do tipo C :c:type:`wchar_t`, "
864
+ "use a função :func:`create_unicode_buffer`."
788
865
789
866
#: ../../library/ctypes.rst:345
790
867
msgid "Calling functions, continued"
791
- msgstr "Invocação de Funções , continuação"
868
+ msgstr "Chamando funções , continuação"
792
869
793
870
#: ../../library/ctypes.rst:347
794
871
msgid ""
795
872
"Note that printf prints to the real standard output channel, *not* to :data:"
796
873
"`sys.stdout`, so these examples will only work at the console prompt, not "
797
874
"from within *IDLE* or *PythonWin*::"
798
875
msgstr ""
876
+ "Observe que printf imprime no canal de saída padrão real, *não* em :data:"
877
+ "`sys.stdout`, então esses exemplos só funcionarão no prompt do console, não "
878
+ "de dentro do *IDLE* ou *PythonWin*::"
799
879
800
880
#: ../../library/ctypes.rst:351
801
881
msgid ""
0 commit comments