Esta biblioteca (libcsv.so
) foi desenvolvida em C para processar arquivos CSV ou strings de arquivos CSV, aplicando filtros e selecionando colunas conforme especificado. A biblioteca oferece duas funções principais:
void processCsv(const char csv[], const char selectedColumns[], const char rowFilterDefinitions[])
void processCsvFile(const char csvFilePath[], const char selectedColumns[], const char rowFilterDefinitions[])
A biblioteca pode ser utilizada para processar dados CSV diretamente de uma string ou de um arquivo, aplicando filtros e selecionando colunas conforme as necessidades do usuário.
>
, <
, =
, !=
, >=
, <=
.Para clonar o repositório, execute o seguinte comando:
git clone <URL_DO_REPOSITORIO>
cd <NOME_DO_REPOSITORIO>
O arquivo build.sh é um script que automatiza o processo de compilação, instalação e configuração da biblioteca compartilhada libcsv.so. Ele realiza várias etapas para garantir que a biblioteca e seus componentes estejam corretamente configurados no sistema. Abaixo está a descrição de cada etapa do script:
sudo apt update
sudo apt install
mkdir -p ./build/Debug
gcc -Wall -fPIC -c libcsv.c -o ./build/Debug/libcsv.o gcc -shared -o ./build/Debug/libcsv.so ./build/Debug/libcsv.o
gcc -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Wcast-align -Wconversion -Wsign-conversion -Wnull-dereference -g3 -O0 -c test_libcsv_all.c -o ./build/Debug/test_libcsv_all.o gcc -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Wcast-align -Wconversion -Wsign-conversion -Wnull-dereference -g3 -O0 ./build/Debug/libcsv.o ./build/Debug/test_libcsv_all.o -o ./build/Debug/test_libcsv_all -lcunit -lpthread
sudo cp ./build/Debug/libcsv.so /usr/local/lib/
sudo cp libcsv.h /usr/local/include/
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Para usuários do WSL, todos os comandos e instruções acima são aplicáveis da mesma forma. No entanto, certifique-se de estar executando o WSL com privilégios de superusuário (root) quando necessário, especialmente ao instalar pacotes e copiar arquivos para diretórios do sistema (/usr/local/lib
e /usr/local/include
).
💡 Para executar o build automático execute o comando abaixo
./build.sh
./build/Debug/test_libcsv_all
🚨 Atenção: Caso o passo acima tenha dado errado siga as instruções abaixo para realizar o procedimento manualmente
🚨 Atenção: Certifique-se de estar na pasta raiz do repositório:
exemplo:
home/<seu_usuario>/<nome_do_repositorio>
sudo apt update
sudo apt install -y gcc libcunit1-dev make
mkdir -p ./build/Debug
gcc -Wall -fPIC -c libcsv.c -o ./build/Debug/libcsv.o
gcc -shared -o ./build/Debug/libcsv.so ./build/Debug/libcsv.o
gcc -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Wcast-align -Wconversion -Wsign-conversion -Wnull-dereference -g3 -O0 -c test_libcsv_all.c -o ./build/Debug/test_libcsv_all.o
gcc -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Wcast-align -Wconversion -Wsign-conversion -Wnull-dereference -g3 -O0 ./build/Debug/libcsv.o ./build/Debug/test_libcsv_all.o -o ./build/Debug/test_libcsv_all -lcunit -lpthread
sudo cp ./build/Debug/libcsv.so /usr/local/lib/
sudo cp libcsv.h /usr/local/include/
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
gcc -Wall -o ./build/Debug/test_program nome_do_seu_arquivo.c -lcsv -lpthread
./build/Debug/test_program
✅ Seguindo todas as instruções desse Readme você deve ser capaz de executar as funções processCsv e processCsvFile em seus projetos.
./build/Debug/test_libcsv_all