diff --git a/devnotes.md b/devnotes.md new file mode 100644 index 0000000..454f59c --- /dev/null +++ b/devnotes.md @@ -0,0 +1,50 @@ +# 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 + +```bash +$ go mod init git.metabarcoding.org/lecasofts/go/oa2.git +go: creating new go.mod: module git.metabarcoding.org/lecasofts/go/oa2.git +``` + +```bash +go env -w GOPRIVATE=git.metabarcoding.org/lecasofts/go/* +``` + +```bash +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 + + - + +## Reading Fasta/Fastq files + + - + +## Some consideration on `zlib` + +### Closing a `gzFile` + +https://stackoverflow.com/questions/65704567/how-to-properly-open-and-close-an-already-fopened-gzip-file-with-zlib + +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. +