Start work on a SHM implementation in Go

This commit is contained in:
Kovid Goyal
2022-12-20 09:15:26 +05:30
parent 7a1140cd03
commit d01d5297b8
9 changed files with 458 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
package shm
import (
"fmt"
"os"
"path/filepath"
)
var _ = fmt.Print
const SHM_DIR = "/tmp"
func create_temp(pattern string) (*os.File, error) {
ans, err := os.CreateTemp(SHM_DIR, pattern)
if err != nil {
return nil, err
}
return ans, nil
}
func Open(name string) (*os.File, error) {
if !filepath.IsAbs(name) {
name = filepath.Join(SHM_DIR, name)
}
ans, err := os.OpenFile(name, os.O_RDONLY, 0)
if err != nil {
return nil, err
}
return ans, nil
}
func Unlink(name string) error {
if !filepath.IsAbs(name) {
name = filepath.Join(SHM_DIR, name)
}
return os.Remove(name)
}