mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
1.7 KiB
1.7 KiB
OA2
Initialisation of the GO directory structure
Principles are extracted from :
- https://www.wolfe.id.au/2020/03/10/starting-a-go-project/
- https://dev.to/johanlejdung/a-mini-guide-go-modules-and-private-repositories-4c7o
- https://blog.otso.fr/2020-10-11-organisation-projet-go-standard
$ go mod init git.metabarcoding.org/lecasofts/go/obitools.git
go: creating new go.mod: module git.metabarcoding.org/lecasofts/go/obitools.git
go env -w GOPRIVATE=git.metabarcoding.org/lecasofts/go/*
mkdir cmd # Inside this add a folder per program
mkdir pkg # Inside this add a folder per library of the project
mkdir internal # Inside this add a folder per private library of the project
Some information in interfacing Go and C
- <https://karthikkaranth.me/blog/calling-c-code-from-go/>
Reading Fasta/Fastq files
- <http://lh3lh3.users.sourceforge.net/parsefastq.shtml>
Some consideration on zlib
Closing a gzFile
File descriptors are obtained from calls like open, dup, creat, pipe or fileno (in the file has been previously opened with fopen). The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd), mode) closes the file descriptor fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, mode);. If you are using fileno() to get the file descriptor from a FILE *, then you will have to use dup() to avoid double-close()ing the file descriptor. Both gzclose() and fclose() will close the associated file descriptor, so they need to have different file descriptors.