文件句柄

Matlab学习笔记(四)——编程基础

旧街凉风 提交于 2020-01-31 10:21:49
4.1 M文件 所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名,然后由MATLAB系统进行编译,得出相应的运行结果,具有相当大的可开发性和扩展性。M文件有脚本文件的函数文件两种。脚本文件不需要输入参数也不输出参数,按照文件中指定的顺序执行命令序列。而函数文件则接受其他数据作为输入参数,并且可以返回数据 4.1.1 M文件编辑器 函数定义行 用于定义函数名称,定义输入输出变量的数量、顺序。脚本式M文件没有此行 完整函数定义为 function[out1,out2,out3…]=funName(in1,in2,in3…) 其中输入变量用圆括号,变量间用英文逗号分隔。输出变量用方括号,无输出可用空括号或无括号和等号 无输出的函数定义行可为 function funName (in1,in2,in3) H1行 紧跟着函数定义行,因为它是Help文件的第一行,所以叫做H1行,用%开始 MATLAB可以通过命令把M文件上的帮助信息显示在命令窗口。因此建议写M文件时建立帮助文本 H1行是函数功能的概括性描述,在命令窗口提示符下输入命令可以显示H1行文本 help filename或者look for filename Help文本 这是为帮助建立的文本,可以是连续多行的注释文本。只能在命令窗口观看 帮助文本遇到之后的第一个非注释行结束,函数中的其他注释行不被显示 注释

标准输入输出重定向

£可爱£侵袭症+ 提交于 2020-01-30 00:47:16
程序会在运行中输出日志,并是通过java的日志类进行输出的。而如果关掉SSH运行程序,就会丢失这些信息。直观的解决办法是将输出到控制台的日志重定向到文件中,于是我将命令改为:sh auto.sh > console.txt &。不过事实并没像我想的那样,console.txt虽然被创建了,而日志并没有写在其中。后来请教Robert Chen,他让我用sh auto.sh >console.txt 2>&1 & 命令试一下,我输入了这个隐晦的命令之后,原本输出到控制台的日志内容终于被重定向到console.txt了。 下面来详细分析一下这条命令: sh auto.sh 运行shell脚本 >console.txt 将标准输出重定向到console.txt文件中 其实操作系统有三个常用的流: 0:标准输入流 stdin 1:标准输出流 stdout 2:标准错误流 stderr 一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。 java的日志类默认是输出到system.err中,所以要想将日志内容重定向到console.txt,需要将stderr重定向到console.txt. 将stderr重定向到console.txt的命令是 2 < console.txt。

Windows进程间通信

假装没事ソ 提交于 2020-01-21 20:07:27
  Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProcess Communication, IPC),进程通信就是指 不同进程间进行数据共享和数据交换 。进程间通信的方式有: 1、文件映射   文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。   Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。 应用程序有三种方法来使多个进程共享一个文件映射对象:   (1)继承:第一个进程建立文件映射对象,它的子进程继承该对象的句柄。   (2)命名文件映射:第一个进程在建立文件映射对象时可以给该对象指定一个名字(可与文件名不同)。第二个进程可通过这个名字打开此文件映射对象。另外,第一个进程也可以通过一些其它IPC机制(有名管道、邮件槽等)把名字传给第二个进程。   (3)句柄复制:第一个进程建立文件映射对象,然后通过其它IPC机制(有名管道、邮件槽等

雷林鹏分享:PHP cURL 函数

徘徊边缘 提交于 2020-01-17 13:51:54
  概述   PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。   libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。   PHP中使用cURL实现Get和Post请求的方法   这些函数在PHP 4.0.2中被引入。   需求   为了使用PHP的cURL函数,你需要安装 » libcurl包。   PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安装7.9.0或更高版本的libcurl。从PHP 4.3.0开始你需要安装7.9.0或更高版本的libcurl。从PHP 5.0.0开始你需要安装7.10.5或更高版本的libcurl。   安装   要使用PHP的cURL支持你必须在编译PHP时加上--with-curl[=DIR] 选项,DIR为包含lib和include的目录路径。在include目录中必须有一个名为curl,包含了easy.h和curl.h的文件夹

利用纯m文件生成ui(二)

别来无恙 提交于 2020-01-14 12:22:04
利用纯m文件生成ui之简单版canny边缘提取 布局部分 %get the cannyedge of the pictures. %调用说明: %选择自己图片并且导入点击按钮即可(测试版) % 版本号V1.0,编写于2019年12月12号 作者:neverland! %% h = figure('menubar','none',... 'NumberTitle','off',... 'Name','20177740--neverland的课程设计',... %窗口对象 'Position',[300 120 1000 800],... 'tag','figure1'); %坐标轴1 axes1 = axes('Units','pixels',... 'Parent',h,... 'position',[100 200 300 350],... 'XTick',[],... 'YTick',[],... 'Box','on',... 'tag','ax0'); %坐标轴2 axes2 = axes('Units','pixels',... 'Parent',h,... 'Position',[600 200 300 350],... 'XTick',[],... 'YTick',[],... 'Box','on',... 'tag','ax1'); %菜单作为控制按钮,选择原始图像

C#调用Win32 的API函数--User32.dll

☆樱花仙子☆ 提交于 2020-01-11 08:31:37
Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace WindowsAPI { class CSharp_Win32Api { #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。hWnd:设备上下文环境被检索的窗口的句柄 /// </summary> [DllImport( " user32.dll " , CharSet = CharSet.Auto)] public static extern IntPtr GetDC(IntPtr hWnd); /// <summary> /// 函数释放设备上下文环境(DC)供其他应用程序使用。 /// </summary> public static extern int ReleaseDC(IntPtr

193_common lisp文件句柄的使用

ε祈祈猫儿з 提交于 2020-01-10 16:22:54
分析使用的例子来自于《实用common lisp编程》中的CD录入程序。或许是因为之前学习过其他的编程语言,我现在的编程语言的学习基本上都是在寻找之前已经掌握的编程语言的已知元素。当然,这只是第一步。当这一步过了之后,后面的提升则是针对这个编程语言的一些特性。 这一次找到的已知元素是C语言中的文件句柄,当然,在我之前学习过的一系列的脚本语言中也有这个元素。或许,拿语法清晰的Python做一个类比更简单吧! 如果是在Python中,这里涉及到的接口是open,open打开的文件句柄可以拥有不同的属性。比如说,最简单的读或者写。在common lisp中,相应的功能是一个宏,with-open-file。与python的open相似,这个宏打开文件的同时会将文件操作绑定到一个变量上。而打开文件的方式具有不同的属性。而其他语言中提到的句柄这个东西,就是common lisp中with-open-file需要绑定的变量。 以下是common lisp的代码: 上面的操作,打开一个文件,设置输出属性。如果文件已经存在,那么进行覆盖。第二个类似句柄的宏with-standard-io-syntax作用于print,将其行为设置为默认。因此,上面的函数功能就是把全局量*db*的信息存储到filename指定的文件中。 理解了上面的功能,读取基本是一个相反的操作。 以下是common lisp代码

以挂起方式创建进程

喜夏-厌秋 提交于 2020-01-10 11:50:24
1.进程的继承 创建进程的函数: BOOL CreateProcess( LPCTSTR lpApplicationName, // 创建进程时打开的exe文件名 LPTSTR lpCommandLine, // 创建进程时的命令行参数 LPSECURITY_ATTRIBUTES lpProcessAttributes, // 安全属性,可用来设置该进程句柄是否可继承 LPSECURITY_ATTRIBUTES lpThreadAttributes, // 可用来设置进程的主线程句柄是否可继承 BOOL bInheritHandles, // 是否继承父进程的句柄表 DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // new environment block LPCTSTR lpCurrentDirectory, // 进程的当前目录 LPSTARTUPINFO lpStartupInfo, // 程序状态设置 LPPROCESS_INFORMATION lpProcessInformation // out参数进程信息 ); lpProcessAttributes ->安全属性,用来设定进程是否能被继承;一个SECURITY_ATTRIBUTES结构的指针,第三个成员为TRUE可继承;

记一次传递文件句柄引发的血案 (续)

风流意气都作罢 提交于 2020-01-06 17:38:12
继 记一次传递文件句柄引发的血案 之后,这个 demo 又引发了一次血案,现录如下。 这次我是在 linux 上测试文件句柄的传递,linux 上并没有 STREAMS 系统, 因此是采用 unix domain socket 的 sendmsg/recvmsg 中控制消息部分来传递句柄的。 代码的主要修改部分集中于发送 fd 与接收 fd 处,一开始代码是这样的,运行良好。 spipe_fd.c 1 #define MAXLINE 128 2 #define RIGHTSLEN CMSG_LEN(sizeof(int)) 3 #define CREDSLEN CMSG_LEN(sizeof(struct CREDSTRUCT)) 4 #define CONTROLLEN (RIGHTSLEN+CREDSLEN) 5 6 int send_fd (int fd, int fd_to_send) 7 { 8 struct iovec iov[1]; 9 struct msghdr msg; 10 struct cmsghdr *cmptr = NULL; 11 char buf[2]; 12 13 iov[0].iov_base = buf; 14 iov[0].iov_len = 2; 15 16 msg.msg_iov = iov; 17 msg.msg_iovlen = 1;

句柄的真正理解

浪子不回头ぞ 提交于 2020-01-03 17:36:08
**真理一句话:句柄是引用,而不是指针。只能改变对应对象的内容,但不知道对象在哪。 ** 以下内容摘取网上资源,如有违反作者版权,请通知。 句柄是用来标识项目的。(它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。有一说法是指向指针的指针) 项目包括:模块(module)、任务(task)、实例 (instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(font)、资源(resource),包括图标(icon),光标 (cursor),字符串(string)等、GDI对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域 (region),以及设备描述表(device context)。 实质: 在windows中,句柄是和对象一一对应的32位无符号整数值。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。 形象说法:要想控制某一设备,不去直接控制设备,而是控制设备的操作手柄。 使用句柄的好处: windows需要向程序员提供必要地编程接口,在这些接口中,允许程序员访问、创建和销毁对象