section

Go 每日一库之 go-ini

杀马特。学长 韩版系。学妹 提交于 2020-01-16 07:46:18
简介 ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。 go-ini 是 Go 语言中用于操作 ini 文件的第三方库。 本文介绍 go-ini 库的使用。 快速使用 go-ini 是第三方库,使用前需要安装: $ go get gopkg.in/ini.v1 也可以使用 GitHub 上的仓库: $ go get github.com/go-ini/ini 首先,创建一个 my.ini 配置文件: app_name = awesome web # possible values: DEBUG, INFO, WARNING, ERROR, FATAL log_level = DEBUG [mysql] ip = 127.0.0.1 port = 3306 user = dj password = 123456 database = awesome [redis] ip = 127.0.0.1 port = 6381 使用 go-ini 库读取: package main import ( "fmt" "log" "gopkg.in/ini.v1" ) func main() { cfg, err := ini.Load("my.ini") if err != nil { log.Fatal("Fail to

NodeJS测试实例

帅比萌擦擦* 提交于 2020-01-13 20:59:49
实例一: 先来个简单的实例,把下面的代码保存为main.js,让自己欣喜下: var http = require("http"); function onRequest(request, response){ console.log("Request received."); var str='{"id":"0036",name:"jack",arg:123}'; response.writeHead(200,{"Content-Type":'text/plain','charset':'utf-8','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'}); //response.writeHead(200,{"Content-Type":'application/json','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'}); //response.write("Hello World 8888\n"); response.write(str); response.end(); } http

Linux内存管理与C存储空间

[亡魂溺海] 提交于 2020-01-11 07:58:22
ELF文件 在学习之前我们先看看ELF文件。 ELF分为三种类型 :.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library), 三种格式基本上从结构上是一样的,只是具体到每一个结构不同。 下面我们就从整体上看看这3种格式从文件内容上存储的方式,spec上有张图是比较经典的:如上图: 其实从文件存储的格式来说,上面的两种view实际上是一样的,Segment实际上就是由section组成的,将相应的一些section映射到一起就叫segment了,就是说segment是由0个或多个section组成的,实际上本质都是section。 在这里我们首先来仔细了解一下section和segment的概念: section就是相同或者相似信息的集合,比如我们比较熟悉的.text .data .bss section,.text是可执行指令的集合,.data是初始化后数据的集合,.bss是未初始化数据的集合。 实际上我们也可以将一个程序的所有内容都放在一起,就像dos一样,但是将可执行程序分成多个section是很有好处的,比如说我们可以将.text section放在memory的只读空间内,将可变的.data section放在memory的可写空间内。 从可执行文件的角度来讲,如果一个数据未被初始化那就不需要为其分配空间,所以.data和

执行目标文件引发的问题:syntax error: word unexpected (expe...

人盡茶涼 提交于 2020-01-09 21:06:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天不小心把一个目标文件当成了可执行文件放到开发板上进行执行,结果出现了这样一个问题:./hello_qt: line 1: syntax error: word unexpected (expecting ")"),因为以前没有碰到过这事,一时间有点蒙,就是一个简单的hello world按道理不会有问题才对。于是google了一下,原来是一个小小的-c编译选项搞得鬼。顺带也扩展学习总结了一下。 arm和pc上执行目标文件的区别 一般来说,gcc -c选项编译出来的目标文件是不可执行的,因此也就不会遇到这种问题,尤其是在PC上就更是如此。我这边是因为把文件转windows工作台,再通过tftp下载的开发板上,然后文件就全部是普通文件,都是自己chmod +x改的可执行,一时大意才难得碰上这问题。 PC上执行目标文件的错误提示 ~/test$ ./zh_display.o -bash: ./zh_display.o: cannot execute binary file ARM上执行交叉编译目标文件的错误提示 $ ./hello_qt ./hello_qt: line 1: syntax error: word unexpected (expecting ")") PC上的提示信息一看就懂

C++多线程之使用Mutex和Critical_Section

纵然是瞬间 提交于 2020-01-07 12:16:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量、对象或内存空间的访问。下面是其主要的异同点(不同的地方用绿色表示)。 Mutex Critical Section 性能和速度 慢。 Mutex 是内核对象,相关函数的执行 (WaitForSingleObject, ReleaseMutex)需要用户模式(User Mode)到内核模式 (Kernel Mode)的转换,在x86处理器上这种转化一般要 发费600个左右的 CPU指令周期。 快。 Critical Section本身不是内核对象,相关函数 (EnterCriticalSection,LeaveCriticalSection) 的调用一般都在用户模式内执行,在x86处理器上 一般只需要发费9个左右的 CPU指令周期。只有 当想要获得的锁正好被别的线程拥有时才会退化 成和Mutex一样,即转换到内核模式,发费600个 左右的 CPU指令周期。 能否跨越进程(Process)边界 可以 不可 定义写法 HANDLE hmtx; CRITICAL_SECTION cs; 初始化写法 hmtx= CreateMutex (NULL, FALSE, NULL);

【记录复查】mutex | critical section

允我心安 提交于 2020-01-07 11:28:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ==========================blogI============================ 1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。 2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。 3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 临界区(Critical Section)   保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。   临界区包含两个操作原语:   EnterCriticalSection() 进入临界区   LeaveCriticalSection() 离开临界区   EnterCriticalSection(

ASP.NET Core 中文文档 第四章 MVC(3.3)布局视图

为君一笑 提交于 2020-01-06 03:14:00
原文: Layout 作者: Steve Smith 翻译: 娄宇(Lyrics) 校对: 孟帅洋(书缘) 视图(View)经常共享视觉元素和编程元素。在本篇文章中,你将学习如何在你的 ASP.NET 应用程序中使用通用布局视图、共享指令以及在渲染视图前运行通用代码。 章节: 什么是布局视图 指定布局 导入共享指令 在视图之前运行代码 什么是布局视图 大部分 Web 应用程序在用户切换页面时,使用通用布局提供了一致的用户体验。通用布局通常包含页眉、导航栏(或菜单)以及页脚等通用 UI 元素。 在一个应用程序中,诸如脚本(scripts)和样式表(stylesheets)这样的通用 HTML 结构也频繁的被许多页面使用。所有的这些共享元素可以在 layout 文件中定义,这样应用程序中的任何视图都可以使用它们。布局视图减少了视图中的重复代码,帮助我们遵循 Don't Repeat Yourself (DRY) 原则 。 按照惯例,ASP.NET 应用程序的默认布局文件命名为 _Layout.cshtml 。Visual Studio ASP.NET Core MVC 项目模板包含这个布局文件,位置在 Views/Shared 文件夹: 这个布局为应用程序中的视图定义了一个顶层模版。布局对应用程序来说不是必须的,应用程序也可以定义多个模板供不同的视图使用。 一个 _Layout

ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门

谁说我不能喝 提交于 2020-01-06 03:13:46
一、前言 1、本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Core MVC (Razor)视图全局代码(_ViewStart.cshtml)教程 2、本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 IDE Visual Studio Code 1.28 浏览器 Chrome 70 本篇代码以下代码进行调整: https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02 3、准备工作 VS Code 本身不提供 ASP.NET Core MVC 视图引擎(Razor)的智能感知。 幸运的是, VS Code C#扩展 从 1.17.0 版本开始支持Razor视图引擎的智能感知。 所以,我们要将 VS Code C#扩展 升级到最新版本。 二、母版页视图模板 网页中往往有通用的布局,比如导航、底部等等,这些页面中共用的部分,就需要放在母版页里面。 这样每个页面只用关注本页面要完成的功能/内容即可。提高了开发效率,也降低了公共部分的维护成本。 Razor视图引擎原生提供了 Layout 的概念

ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门

安稳与你 提交于 2020-01-06 03:13:18
一、前言 1、本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Core MVC (Razor)视图全局代码(_ViewStart.cshtml)教程 2、本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 IDE Visual Studio Code 1.28 浏览器 Chrome 70 本篇代码以下代码进行调整: https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02 3、准备工作 VS Code 本身不提供 ASP.NET Core MVC 视图引擎(Razor)的智能感知。 幸运的是, VS Code C#扩展 从 1.17.0 版本开始支持Razor视图引擎的智能感知。 所以,我们要将 VS Code C#扩展 升级到最新版本。 二、母版页视图模板 网页中往往有通用的布局,比如导航、底部等等,这些页面中共用的部分,就需要放在母版页里面。 这样每个页面只用关注本页面要完成的功能/内容即可。提高了开发效率,也降低了公共部分的维护成本。 Razor视图引擎原生提供了 Layout 的概念

MVC Razor简单介绍

家住魔仙堡 提交于 2020-01-02 02:00:25
随着MVC3.0RTM版本的发布,大家都从asp.net页面开始转向使用Razor模板引擎。现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出。 其实在使用<%= %>或者<%: %>在html中调用C#代码时,总在埋怨。这个写法非常麻烦。麻烦就在开与闭区间之间的问题。比如: Asp.net: <script src="<%=Url.Content("~/Scripts/jquery-1.7.1.min.js")%>" Razor: <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" 非常明显,Razor在内部帮我们做了闭合“ %> ”。其实就是这个小小的闭合让我们可以在html内更加“流畅”的调用服务端代码。故Razor给开发带来了一定的便捷!下面介绍Razor的基本用法。 1. 模板页 Razor出现后我们就可以选择不再使用asp.net master 模板页。取而代之的是cshtml razor的模板文件。用法个人认为还是和master模板页类似。但在mater模板页的原有功能上有了进一步扩展,更方便开发。比如只要在View文件夹内加入_ViewStart.cshtml文件,我们就无需在每一个具体的View页面引入模板页。减少View页面内的重复代码。具体的可以建立一个MVC3