Go to file
hslam 5aa37aef69 add go mod 2021-01-17 02:47:14 +08:00
.github/workflows migrate from travis-ci to actions 2020-12-18 13:03:35 +08:00
.gitignore Initial commit 2020-11-27 18:32:27 +08:00
LICENSE update LICENSE 2020-11-27 18:34:12 +08:00
README.md migrate from travis-ci to actions 2020-12-18 13:03:35 +08:00
go.mod add go mod 2021-01-17 02:47:14 +08:00
go.sum add go mod 2021-01-17 02:47:14 +08:00
msg.go godoc 2020-11-29 03:33:55 +08:00
msg_test.go update methods 2020-12-01 16:57:00 +08:00
msg_unix.go update methods 2020-12-01 16:57:00 +08:00

README.md

msg

PkgGoDev Build Status Go Report Card LICENSE

Package msg provides a way to use System V message queues.

Get started

Install

go get github.com/hslam/msg

Import

import "github.com/hslam/msg"

Usage

Example

msgsnd

package main

import (
	"github.com/hslam/ftok"
	"github.com/hslam/msg"
	"time"
)

func main() {
	key, err := ftok.Ftok("/tmp", 0x22)
	if err != nil {
		panic(err)
	}
	msgid, err := msg.Get(key, msg.IPC_CREAT|0600)
	if err != nil {
		panic(err)
	}
	defer msg.Remove(msgid)
	err = msg.Send(msgid, 1, []byte("Hello World"), 0600)
	if err != nil {
		panic(err)
	}
	time.Sleep(time.Second * 10)
}

msgrcv

package main

import (
	"fmt"
	"github.com/hslam/ftok"
	"github.com/hslam/msg"
)

func main() {
	key, err := ftok.Ftok("/tmp", 0x22)
	if err != nil {
		panic(err)
	}
	msgid, err := msg.Get(key, 0600)
	if err != nil {
		panic(err)
	}
	text, err := msg.Receive(msgid, 1, 0600)
	if err != nil {
		panic(err)
	}
	fmt.Println(string(text))
}

Output

Hello World

License

This package is licensed under a MIT license (Copyright (c) 2020 Meng Huang)

Author

msg was written by Meng Huang.