Skip to content

Instantly share code, notes, and snippets.

View Plankiton's full-sized avatar
💩
...

Yaks Souza Plankiton

💩
...
View GitHub Profile
@Plankiton
Plankiton / main.c
Last active August 4, 2021 15:39
como editar arquivos binários em c 1 - código
#include <string.h> // strcmp
#include <stdio.h> // FILE, fopen
#include <stdlib.h> // exit
#include "png.h" // Chunk
// Função que interrompe o programa e exibe mensagem em caso de erros
void die(Byte * msg){
fprintf(stderr, "Error: %s\n", msg);
exit(1);
}
@Plankiton
Plankiton / main.c
Last active September 20, 2021 02:51
como editar arquivos binários em c 2 - código
#include <string.h> // strcmp
#include <stdio.h> // FILE, fopen
#include <stdlib.h> // exit
#include "png.h" // Chunk
// Função que interrompe o programa e exibe mensagem em caso de erros
void die(Byte * msg){
fprintf(stderr, "Error: %s\n", msg);
exit(1);
}
int main(int argc, char ** argv){
@Plankiton
Plankiton / pt-BR.md
Last active June 16, 2020 18:22
{ 'pt-BR': 'Como usar bibliotecas feitas em C no Python' }

Como usar bibliotecas feitas em C no Python

A maioria das linguagens de programação atuais são escritas em C, e o Python não é diferente, mas o Python tem uma ligação especial com a linguagem, da até para usar bibliotecas do C dentro do Python.

Como funciona essa "bruxaria"

Quando Guido Van Rossum idealizou o Python, ele usou o C como base de sua argumentação, já que segundo ele o C tem programas muito grandes e muitas vezes difíceis de entender. E então criou o Python para ser uma linguagem simples e de fácil compreenção, e ele conseguiu, mas com isso perdeu todas as vantagens que existem em usar o C, como acesso direto à memória e aos componentes de hardware do sistema.

A solução para isso foi permitir que fosse possível usar bibliotecas feitas em C dentro do Python, isso é possível por que todo o código que você escreve em Python é "compilado" para um binário PYC, e para usar uma biblioteca do C junto com o PYC o interpretador usa um linker para usar os recursos da biblioteca C, e quando você impo

from distutils.core import setup, Extension
def main():
setup(
name="shell",
version="1.0.0",
description="Python interface for system function",
author="Yak's Vinicios Silva Souza",
author_email="vinicios.sousa909@gmail.com",
ext_modules=[Extension("shell", ["shell.c"])]