open函数

Linux strace追踪命令详解

穿精又带淫゛_ 提交于 2020-03-04 15:16:25
strace介绍 strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。 strace的最简单的用法就是执行一个指定的命令,在指定的命令结束之后它也就退出了。在命令执行的过程中,strace会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值。 简单用法 root@ubuntu:/usr# strace cat /dev/null execve("/bin/cat", ["cat", "/dev/null"], [/* 22 vars */]) = 0 brk(0) = 0xab1000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory

[strace]跟踪进程的系统调用

你。 提交于 2020-03-04 15:15:02
转自 : https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号,调试应用程序的时候经常使用 。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。 输出参数含义 root@ubuntu:/usr# strace cat /dev/null execve("/bin/cat", ["cat", "/dev/null"], [/* 22 vars */]) = 0brk(0) = 0xab1000access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or

strace命令

末鹿安然 提交于 2020-03-04 15:14:07
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。 输出参数含义 root@ubuntu:/usr# strace cat /dev/null execve("/bin/cat", ["cat", "/dev/null"], [/* 22 vars */]) = 0brk(0) = 0xab1000access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)...brk(0) = 0xab1000brk(0xad2000) = 0xad2000fstat(1, {st_mode=S_IFCHR|0620, st

python标准库学习6

喜你入骨 提交于 2020-03-04 10:02:35
使用 apply 函数 def function(a, b): print a, b apply(function, ("whither", "canada?")) apply(function, (1, 2 + 3))    whither canada? 1 5 使用 apply 函数传递关键字参数 def function(a, b): print a, b apply(function, ("crunchy", "frog")) apply(function, ("crunchy",), {"b": "frog"}) apply(function, (), {"a": "crunchy", "b": "frog"}) crunchy frog crunchy frog crunchy frog    使用 apply 函数调用基类的构造函数 class Rectangle: def _ _init_ _(self, color="white", width=10, height=10): print "create a", color, self, "sized", width, "x", height class RoundedRectangle(Rectangle): def _ _init_ _(self, **kw): apply(Rectangle._ _init

python文本操作

陌路散爱 提交于 2020-03-03 15:59:43
  open()函数来打开一个文件, 获取文件句柄(文件句柄是一个可迭代的对象). 然后通过文件句柄就可以进行各种各样的操作了了. 根据打开方式的不同能够执行的操作也会有相应的差异 因为文件句柄是一个可迭代的对象,可以通过for循环读取数据,并且它每次读取的时候都是读取一行内容 f = open('gg','r',encoding = 'utf-8') for i in f:#读取文件中的内容。 一行一行的读取。 每次读取的内容交给前面的变量 print(i.strip) 上面每次循环相当于直接使用f.readline() f.writelines() 直接将一个列表的内容传递写进去,注意的是写入的东西都必须是字符串,如果不是字符串的话就会报错 f.writable() 判断文件是否是可写的 f.read() 一次性直接读取全部,如果里面写入了数据则按照数字读取文本的个数eg:f.read(2) 表示读取文件的多少个字符 f.readlines() 整行读取为一个元素,并将每行作为一个元素添加到列表中(说明返回值是一个列表)一次性全部读取 f.readline() 只是读取一行 f.readable() 判断文件否是可读的 在打开一个文件的时候如果文件是以绝对路径的方式进行打开的时候,由于含有’\’eg: C:\Users\vivi\Desktop\python编程\练习答案 由于

20181221hw

旧时模样 提交于 2020-02-28 14:13:41
读入用户输入的文件的路径和一个字符串和行数,将文件中的第 n 行行首插入用户输入的字符串 def fun(): fpath = input(' 请输入一个文件路径: ') str = input(' 请输入一个字符串: ') n = int(input(' 请输入要插入的行数: ')) l = [] # 定义一个空列表 with open(fpath,'r') as f: for i in f: l.append(i) # 把打开的文件存入列表中 #print(l) l.insert(n-1,str) # 要在第几行插入字符串 s = ''.join(l) with open(fpath,'w+') as f: f.write(s) # 把新的内容写入文件 try: fun() except Exception as e: print(' 输入内容与提示不符! {}'.format(e)) 3. 下面只有一种方式不能打开文件,请尝试,并说明原因 ? 01.    f = open('E:/test.txt', 'w') 02.    f = open('E:\test.txt', 'w') # 必须双 \\ 或者前面加 r ,否则 Python 会将反斜杠作为转义符 03.    f = open('E://test.txt', 'w') 04.    f = open('E:\

Python 中的文件操作

蓝咒 提交于 2020-02-28 02:01:01
Python 中的文件操作 (1)文件路径 绝对路径,从磁盘的根目录寻找,或者从互联网上找一个路径如: f = open ( 'C:/Users/Administrator/Desktop/My Projects/demo1/haha.txt' , mode = 'r' , encoding = 'gbk' ) str1 = f . read ( ) print ( str1 ) f . close ( ) 相对路径,相对于当前程序所在的文件夹,其中’…/'是返回上一层文件夹(常用) (2)常用文件操作模式 r,rb(只读bytes) ##只读 w,wb(只写bytes) ##只写,会把原来文件清空 a,ab(追加写bytes) ##追加写,不会清空原文件 r+ ##读写 w+ ##写读 a+ ##追加写读 (3)常用操作 f.seek(偏移量,位置) #seek(0)移动到首位置,seek(0,2)移动到结尾,还有seek(0,1),1是当前位置,2是末尾 2)f.tell() 获取光标位置 3)f.truncate() 截断文件,默认删除光标后所有,且必须在写文件的模式下,如果给参数,则截取从开始到参数位置 (4)常用操作函数 读文件 1)用open打开一个文件,open(‘文件名(路径)’,mode=‘模式(2中的)’,encoding=‘字符集(编码)’) f = open

Python IO

烈酒焚心 提交于 2020-02-28 00:45:37
I/O 在计算机中I/O是 Input/Output 的简写,表示输入和输出。由于程序和运行时的数据是在内存中驻留,并由CPU计算核心来执行,涉及到数据交换的地方比如磁盘、网络等时,就需要I/O接口。 通常程序完成I/O操作会有 Input 和 Output 两个数据流,当然也有只用一个的情况,比如从磁盘读取文件到内存,就只会使用 Input 操作。相反将数据从内存写入到磁盘文件时也只有一个 Output 操作。 输入输出是相对的,需要考虑具体的对象是什么。一般而言,当编写的程序需要读取磁盘文件时,相当于将磁盘的数据输入到程序中,对于程序而言读取的数据就属于 Input ,对于磁盘而言则相当于将数据输出给程序,输出的数据是属于 Output 。 Stream I/O编程中,流 Stream 是一个很重要的概念,可以把流想象成一根管道,数据就是水管中的水,但只能单向流动。 Input Stream 输入流是数据从外部比如磁盘或网络流进内存, Output Stream 输出流则是数据从内存 流到外部。例如,对于浏览网页来说,浏览器和服务器之间至少需要建立了两条水管才能收发数据。 同步异步 由于CPU和内存的速度远高于外设的速度,所以I/O编程中存在速度验证不匹配的问题 。 比如说要将100MB的数据写入磁盘,CPU输出100MB数据只需0.01秒

文件操作

假如想象 提交于 2020-02-27 08:58:42
一.介绍 : 首先使用open()函数来打开一个文件,获取到文件句柄,通过文件句柄来进行操作. 打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b 默认使用的是r模式 带b的模式就是讲字符转换成字节 二.只读操作(r,rb) f = open('学习',mode='r',encoding='utf-8') s = f.read() f.close() #关闭句柄,不要忘记写 print(s) 注意:encoding表示编码集,根据文件的实际保存编码进行获取数据,对于我们更多的是使用utf-8 rb.读取出来的数据是bytes类型,在rb模式下不能选择encoding字符集 f = open('学习',mode='rb') s = f.read() f.close() print(s) 结果: b'python\xe4\xbd\xa0\xe5\xa5\xbd' rb的作用:用于读取非文本类文件,如mp3,图像,视频等 上传下载的时候会用到 绝对路径和相对路径: 相对路径:相当于当前程序所在的文件夹,如果在同一文件夹中,相对路径就是这个文件名.如果在上一层文件夹,则要 ../ 返回上一层 绝对路径:1.从磁盘根目录寻找,      2.互联网上的一个绝对路径 注意:使用相对路径,我们把程序给别人使用的时候,直接把项目拷走就能运行,而如果用绝对路径

RS485串口编程

故事扮演 提交于 2020-02-25 20:08:10
1.1 单工、半双工、全双工 首先,我使用的是芯片为 SP3485E 为半双工通信。 那么先要明确什么是单工、半双工、全双工。 单工数据传输只支持数据在一个方向上传输; 半双工数据传输允许数据在两个方向上传输 ,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工数据通信允许数据同时在两个方向上传输 ,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。 网卡的全双工(Full Duplex)是指网卡在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的网卡一般都支持全双工。 提到全双工,就不能不提与之密切对应的另一个概念,那就是“半双工(Half Duplex)”, 所谓半双工就是指一个时间段内只有一个动作发生 ,举个简单例子,一条窄窄的马路,同时只能有一辆车通过, 当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是基于半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台。 1.2 关于RS485通信 RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高, 达到十几 V,使用不当容易损坏接口芯片