Category Archives: 计算机相关

在这里插入图片描述

Ubuntu 搭建GO开发环境

1、go开发环境的下载网址: https://golang.google.cn/dl/
ubuntu就下载linux的

2、然后找到刚才的下载目录,将下载的二进制包解压至 /usr/local目录

tar -C /usr/local -xzf go1.12.7.linux-amd64.tar.gz

3、添加GOPATH(GOPATH为自己创建的存放GO项目的工作目录[不建议同GOROOT为同一个路径],可以有多个,以:分隔,但是使用go get 下载的包默认会装到第一个GOPATH下)

export GOPATH=$HOME/Go

4、添加GOROOT

export GOROOT=/usr/local/go

5、添加PATH

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

6、Go项目必须下载到GOPATH下的github.com路径下,想要在任何地方运行go项目,可以这样设置

export GO111MODULE="on"

7、某些包由于长城太高被墙挡住了,可以配置如下,轻松拉取之前拉不下来的包

export GOPROXY=https://goproxy.io

以上方法参数是临时有效,如果需要长期使用,需要新增到环境变量文件

sudo gedit ~/.profile

使文件立刻生效,$ source ~/.profile重启系统即可

在这里插入图片描述

imx6UL 开发板 设置程序自启动

第一步,创建开启脚本 apprun ,目录:touch /etc/init.d/apprun

#!/bin/sh
#
# start/stop app daemon.

### BEGIN INIT INFO
# Provides:          app
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     S 2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: app daemon
# Description:       app is a daemon used to enable NFC features
### END INIT INFO

chmod 755 /home/root/ftp/app

#设置app 所在目录
DAEMON=/home/root/ftp/app   
PIDFILE=/var/run/app.pid
DESC="Linux app daemon for firets"

if [ -f /etc/default/app ] ; then
        . /etc/default/app
fi

set -e

do_start() {
       $DAEMON > /tmp/app.log 2>&1 &
}

do_stop() {
        start-stop-daemon --stop --name app --quiet
}

case "$1" in
  start)
        echo "Starting $DESC"
        do_start
        ;;
  stop)
        echo "Stopping $DESC"
        do_stop
        ;;
  restart|force-reload)
        echo "Restarting $DESC"
        do_stop
        sleep 1
        do_start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

第二步:查看当前运行级别:sudo runlevel ,比如 N 5 就是5级别。 建立软链接:

ln -s /etc/init.d/apprun /etc/rc5.d/S50appgo

在这里插入图片描述

C语言 状态机 条件执行语句

        /* ... */
        switch ( menu() )             // 根据menu()的结果跳转
        {
        case 'a':
        case 'A': action1();               // 执行动作1
                    break;           // 不执行任何其他动作
        case 'b':
        case 'B': action2();       // 执行动作2
                    break;           // 不执行默认的动作
        default:  putchar( 'a' ); // 如果没有识别到任何命令,输出一个警告信息
        }