hslam_msg/README.md

1.6 KiB

msg

PkgGoDev Build Status Go Report Card LICENSE

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

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.