怎样lua的让os.open()阻塞 5C

我的lua程序要做两个事情
1、更新文件 2、读文件

代码:
1、io.popen("echo 'hello world' > ./hello.txt")
2、readfile("./hello.txt") --readfile()是自定义函数

目前存在的问题是:readfile()读取到的文件可能是老的,即第一步的操作没有生效。
原因分析:io.popen()是非阻塞的,第一步没有执行完毕就执行了第二句,所以导致了上面的现象

综上所述,如何使io.open()阻塞,即保证它执行完毕才会执行下面的语句

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
os.open当中的读写选项
1、读文件 读文本文件 input = open('data', 'r') #第二个参数默认为r input = open('data') 读二进制文件 input = open('data', 'rb') 读取所有内容 file_object = open('thefile.txt') try: all_the_text = file_object.read( ) ...
如何让阻塞的函数返回
用到一个函数,比如调用基于阻塞的SOCKET连接的时候例如Accept函数,当一直没有连接过来的时候,就一直在那儿等,有没有什么办法能让其超过了五秒后,还没有连接过来,就主动返回,中止这个Accept函数呢?
如何让Socket阻塞?
RT?
让EditPlus支持Lua
让EditPlus支持Lua让EditPlus支持Lua让EditPlus支持Lua让EditPlus支持Lua让EditPlus支持Lua
winsock中怎样设置阻塞模式下函数调用的阻塞时间?比如怎样让revefrom阻塞5秒就返回。
如题。谢了。
怎么让WINEXEC函数阻塞??
就是让他结束后程序再进行下一步。rn比如:rn...rnwinexec("dir c:\/s",sw_hide);rnMessageBox (....)rn...rnrnrn等DIR把所有的文件都列出,命令结束后,再进行下一步的MSGBOX。
怎样让DirectX窗口拖动时消息循环不阻塞
我的消息循环是rn while(1)rn rn if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))rn rn if (msg.message == WM_QUIT)rn break;rn TranslateMessage(&msg);rn DispatchMessage(&msg);rn rn elsern rn //其他操作rn rn rn return msg.wParam;rnrn但是发现当点击标题栏拖动窗口或者按下Alt键的时候会阻塞,怎样让它能继续执行呢?
让 线程 阻塞-->执行 怎么再从 执行-->阻塞 !!
#include rn#include rn#include rnpthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;//初始化互斥锁rnrnpthread_cond_t cond =PTHREAD_COND_INITIALIZER;//初始化条件变量rnrnrnrnvoid func_pthread1(void)rnrn pthread_mutex_lock(&mutex);//加锁rn pthread_cond_wait(&cond,&mutex);// 设置条件变量,等待SIGNALrn while(1)rn rn ;rn rn sleep(1);rn pthread_mutex_unlock(&mutex);//解锁rn pthread_exit(0);rn rnrnvoid func_pthread2(void)rnrnsleep(1);rnpthread_mutex_lock(&mutex);//加锁rnprintf("hello\r\n");rnpthread_mutex_unlock(&mutex);//解锁rnpthread_cond_signal(&cond);发送SIGNALrnpthread_exit(0);rnrnrnint main()rnrnrnpthread_t pthread1,pthread2;rnrnpthread_create(&pthread1,NULL,(void *)func_pthread1,NULL);//创建线程pthread1rnpthread_create(&pthread2,NULL,(void *)func_pthread2,NULL);//创建线程pthread2rnpthread_join(pthread1,NULL);rnpthread_join(pthread2,NULL);rn rnrn控制func_pthread1 执行和阻塞rn
线程的让入与阻塞——让步yield,阻塞join语句
线程的让步与阻塞 1,线程的让步语句 Thread.yield();,设置条件,符合此条件后,线程让步执行其他程序,几个程序重新争取CPU, if(i%5==0)             {             Thread.yield();//线程的让步             }   2,线程的阻塞 阻塞和睡眠基本一致,不过将try中的Thread.sleep(100)换成...
python 指定目录查找文件,并打印(os for os.open chdir)
使用python查找文件,并打印
怎样结束一个阻塞的线程?
我用用windows socket(阻塞模式)写了一个服务器端的小程序rn我为每一个连接的客户端建立了两个线程,一个用来接收数据,一个用来发送数据,接收数据的线程大概如下:rnreciveproc(...)rnrn char buffer[100];rn while(!endflag) //endflag是一个标志,用来退出线程rn rn if(recv(clientsocket,buffer,10,0)==SOCKET_ERROR))rn rn //与clientsocket断开连接rn rnrn //对buffer缓冲区的内容进行处理rn rnrnrn因为recv函数处于阻塞状态时,endflag不起作用,我该怎么退出这个线程呢(如何让recv函数返回)?rn
网络通讯问题,怎样预防阻塞
我现在服务器端有个侦听端口,我用的是同步通讯rn有时会突然停下来不收消息,我怀疑是阻塞引起的(通讯量很大),rn可能还有其他原因rn。请问如果是阻塞引起的,怎样让侦听程序继续正常侦听下去
lua中文教程,从基础到深入的让你学习lua
lua中文教程,从基础到深入的让你学习lua。
信号的阻塞与非阻塞 是怎样理解呀。
信号的阻塞与非阻塞 是怎样理解呀。
Lua静态库,可以让Lua与C++进行互相调用
Lua静态库,引用Lua静态库,可以让Lua与C++进行交互,这个游戏开发中是必要的基础。
阻塞与非阻塞verilog
对于verilog初学者而言,两种赋值方式即阻塞赋值与非阻塞赋值经常让初学者头痛不已。现在把主要区别整理如下,可以仔细体会
浏览器渲染阻塞与优化-详解推迟加载、异步加载。
我认为一个前端工程师是否优秀,很大程度上取决于对前端性能上优化的功力。所以性能优化对前端真的很重要!!! 本文介绍了什么是阻塞、为什么会阻塞?阻塞优化常用的5种方式以及他们的注意事项。 浏览器渲染阻塞与优化 什么是阻塞?在页面中我们通常会引用外部文件,而浏览器在解析HTML页面是从上到下依次解析、渲染,如果<head>中引用了一个a.js文件,而这个文件很大或者有...
同步异步、阻塞与非阻塞
阻塞:主要针对线程来说,跟踪源码最终会发现线程wait在某个方法上,等待被唤醒。在消息通信中,表现为来了数据后解除阻塞,比如阻塞队列模型中的notFull.await()/notEmpty.signal()和notEmpty.await()/notFull.signal(),以及Socket阻塞通信模型中的阻塞I/O:read/write方法要await数据到来/数据写入完毕才可解除阻塞,继续线程
阻塞与非阻塞
      因为工作需要前端时间搞以太网,遇到通讯问题,简单总结下,以便以后查阅, 我们通过tcp协议传输,所以这块只说明tcp。      tcp模式参考模型:应用层、传输层、网络层、网络接口层。   tcp 协议:https://blog.csdn.net/sinat_36629696/article/details/80740678   linux函数接口:   https://bl...
阻塞与非阻塞通讯
在一个阻塞C/S系统中,服务器要为每一个客户连接开启一个线程阻塞等待客户端发送的消息.若使用非阻塞技术,服务器可以使用一个线程对连接进行轮 询,无须阻塞等待.这大大减少了内存资源的浪费,也避免了服务器在客户线程中不断切换带来的CPU消耗,服务器对CPU的有效使用率大大提高....
在阻塞问题上阻塞了
在服务器的主对话框中的OnInitDialog函数中写了accept函数后,rn想看看阻塞情况,就在后面写了AfxMessageBox("");结果发现能弹出对话框,没有阻塞呀rn为什么
nodejs 阻塞与非阻塞
nodejs 是基于驱动事件的非阻塞I/O模型,node 中所有的api 都支持回调函数,为什么要这么做?这么做有什么优点?阻塞读取var fs = require('fs'); var data = fs.readFileSync('1.txt'); console.log(data); console.log('读取文件');/* 输出的结果: 读取的内容 读取文件 */非阻塞读
socket通信下 阻塞与非阻塞
在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket通信
阻塞与非阻塞(转)
以套接字为例,在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。       对于UDP协议而言,由于UDP没有发送缓存,因此所...
阻塞与非阻塞赋值
概念: RHS--赋值等号右边的表达式或者变量; LHS--赋值等号左边的表达式或变量. 阻塞赋值(=)--当赋值发生时,先计算RHS的值,这时赋值语句不允许任何别的Verilog语句的干扰,直到现行的赋值完成时刻,即RHS 赋值给LHS的时刻,才允许其他赋值语句执行. 非阻塞赋值(<=)--在赋值操作开始时刻计算非阻塞赋值符的RHS值...
socket的阻塞与非阻塞
C/S模型在企业级的软件开发中非常常见,高并发网络通讯更是很多项目的核心模块,学好socket 网络编程显得尤为重要,本课程分为TCP/IP 协议、socket基础与进阶的异步通讯模型三个部分,通过浅显易懂的代码与讲解,让你的C++网络编程能力得到质的飞跃,具备开发高并发服务器的能力!
NIO 阻塞与非阻塞
Socket读写数据底层原理             首先,对于 TCP 通信来说,每个 TCP Socket 在内核中都有一个发送缓冲区和一个接收缓冲区,TCP 的全双工的工作模式及 TCP 的滑动窗口便依赖于这两个独立的 Buffer 及此 Buffer 的填充状态。接收缓冲区把数据缓存入内核,若应用进程一直没有调用 Socket 的 read 方法进行读取的话,则此数据会一直被缓存在接收缓...
阻塞
Set pRdors = pRdoCn1.OpenResultset(sql)rnrn这样有没有问题?rnrn这样写能出现阻塞问题吗?
socket阻塞与非阻塞
socket阻塞与非阻塞
阻塞与非阻塞IO
课程内容 阻塞和非阻塞I/O在设备驱动中的应用 目标 理解阻塞、非阻塞、轮询三种I/O模型 掌握阻塞I/O在驱动程序中的使用 掌握驱动和应用程序中的轮询编程 第一章:阻塞型I/O 第二章:轮询操作(I/O复用) 第三章:三种I/O模型的比较
Linux驱动之阻塞与非阻塞
阻塞和非阻塞 取决与open传入的参数 open("/dev/buttons", O_RDWR );阻塞 会陷入休眠 open("/dev/buttons", O_RDWR | O_NONBLOCK);非阻塞(立即返回一个数) 驱动open static DECLARE_MUTEX(button_lock);     //定义互斥锁 if (file->f_flags
等待队列(阻塞与非阻塞)
IO阻塞和非阻塞模型: http://blog.csdn.net/sun172270102/article/details/52672917https://www.cnblogs.com/lubiao/p/4858086.html 等待队列的实现原理实质是利用了内核线程的等待状态属性,也就是说它是一个有睡眠属性的内核线程。 有个bug,驱动在release时候,去撤销线程的时候发现这个线程(内核队...
阻塞与非阻塞的对比
一、概念描述 阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。函数只有在得到结果之后才会返回。 1、阻塞调用和同步调用不同点: 对于同步调用来说,很多时候当前线程可能还是激活的,只是从逻辑上当前函数没有返回而已,此时,这个线程可能也会处理其他的消息。还有一点,在这里先扩展下:     a.如果这个线程在等待当前函数返回时,仍在...
同步阻塞和异步阻塞
 假设现在办公室开会,就缺一个人了,在他没有来的时候,大家都在聊天。如果这个人不来,会议就没法召开,这就是阻塞。会议这个线程就被挂起了。这时,我们可以继续聊天这个线程,或者再开一个打牌的线程,但是我们不聊天、打牌,非要等到你来再开会,这是同步阻塞。如果我们边聊天、打牌,边等你来了再开会,这是异步阻塞。  还是假设现在办公室开会,就缺你一个人了。如果你不来,会议照常可以进行,这就是非阻塞。尽管你不来...
NIO阻塞与非阻塞
<p>rn <br />rn</p>rn<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价7016元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<span>&nbsp;</span> rn<p>rn <br />rn</p>rn<p>rn Java全程课程的第一阶段,主要讲授java语言基础,涉及变量、流程控制、面向对象、IO流、集合框架、多线程、网络编程,以及常用的MySQL数据库及Java操作数据库的技术JDBCrn</p>
阻塞与非阻塞的问题
请问非阻塞socket与阻塞方式的socket建立连接时,是否会都变为阻塞的活都变为非阻塞的,要么保持不变?
管道-阻塞与非阻塞
非阻塞的管道和FIFO 管道和FIFO都可以设置非阻塞。它们两者都可以在打开之后通过fcntl函数设置O_NONBLOCK标志来enable。一般而言,我们都是先使用F_GETFL来获取当前文件状态标志,将它与O_NONBLOCK按位或之后,再通过F_SETFL来设置新的文件状态标志。 int flags = fcntl(fd, F_GETFL, 0); if (flags < 0) { E
Node.JS阻塞与非阻塞
Node.js 回调函数 Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待
阻塞....
在服务器中有一个比较耗时的操作。 功能是通过发送http请求获得某些数据。(我们的是服务器都是socket通信)rnrn程序处理到这来就阻塞住了。大概1,2秒左右。rnrn请问有什么好的方法使之异步调用吗? 一定需要开个线程去跑这段操作吗?rnrn
2.让ORACLE 跑的更快_锁和阻塞
    锁和阻塞 关于并发concurrency,和并行(parrallel)的意思是不一样的。 数据库中并发的意思是有超过两个以上的用户对同样的数据做修改,而并行的意思是说将一件事情分成很多小的部分,让每一部分同时执行,最后将执行结果汇总成最终结果。        没有并发就没有锁,锁的产生是因为并发,并发的产生是因为系统需要,系统需要是因为用户需要。        系统平时运行正常,...
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件