Go to file
hslam 78fcef3823 update msg 2020-11-30 18:06:51 +08:00
.gitignore Initial commit 2020-11-27 18:32:27 +08:00
.travis.yml travis ci 2020-11-28 02:10:01 +08:00
LICENSE update LICENSE 2020-11-27 18:34:12 +08:00
README.md godoc 2020-11-29 03:33:55 +08:00
msg.go godoc 2020-11-29 03:33:55 +08:00
msg_test.go update msg 2020-11-30 18:06:51 +08:00
msg_unix.go update msg 2020-11-30 18:06:51 +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.Snd(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.Rcv(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.