经典的POSIX多线程程序设计,在POSIX系统下进行C/C++多线程编程必看的一本书。
本书的读者对象是有C/C++编程基础,但是没有线程知识。
本书按照章节,由浅入深,从基本的线程概念,到线程私有数据,实时调度,再到barrier,读写锁,工作队列管理器,并且配合大量注释和实例来演示。
ProgrammingWithPOsiXThreadsPOSIX多线程程序设计[美]Davide.Butenhoff著于磊曾刚译忄因电力出照内容提要枣书深入描述了TEE的开放系统接可标准一POSIX线程,通常称为Pthreads标准。
本书首先解释了线程的基本概念,每括异步编程、线程的生命周期和间步机:然后讨论了些高絞话题,包括属性对象、线程私有数据和实时调度。
此外,本书还讨论了调度的阿题,并给出了避免错误和提髙性能等问题的有价值的建议。
本书使用了大量注释过的实例来解轟实际的概念,并包括Phed的简单索引和对标准化的晨望本书遁合有经验的C语言程序员阅读,也适合多线程编程人员参考纽书在版编目(C|P)数据POSⅨ多线程程序设计/(美)布滕霍夫(Butenhoff,R》著:于磊,曾刚译.一北京:中国电力出版社,2003ISBN75083-1395-XIP..Ⅱ①布②于③曾.,Ⅲ程序没计Ⅳ.TP3111中国版本图书馆CP数据核字(202)第110540号蕃作权合同登记号图字:01-20020712号AuthorizedtranslatlonfromtheEnglishlanguageedion,entitledProgrammingwithPOSIXThreadsbyDavidA.Butenhof,publy,Copyrighto1997Allrightsreserved.Npartofthisbookmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recordingotbyanyinfomationstorageretrievalsystem,withoutpermissionfromthePublisher.CHINESESiMPLIFIEDlanguageeditionpublishedbyChinaElectricPowerPressCopyright的2003本书由培生集团授权出版。
中国电力出版社出版、发行北京三里河路6号100044httpf/wwwinfopuw'er.com.cn汇鑫印务限公司印刷各地新华书店经2003年4月第一版2003年4月北京第印刷787毫米×102毫米16开本20.75印张505千字定价890元版权所有翻即必究〔本书如有印装质量问题,我社发行部负责退换予本书是有关“线程”(thread)和如何使用“线程”的。
在计算机中,“线程”是种能够实现某种功能的基本软件单元。
线稈比传統的进程process)更小巧、更怏捷、更易操作实际上;一旦在操作系统中引入线程,就可以将进程看作包含了数据地址空间、文件和一个(成多个)数据处理线程的综合应用使用线程构建的应用程序能够更加有效地利用系统资源,使用户的界面更加友好,在多处理器系统中不但运行十分快速,而且更加易于维护。
为达到上述目的,你只需要在程序中添加相应的几个简单函数调用,即可调整成另一种编程思路。
通过仔细阅读本书,我希望能够帮助你实现上述目标本书讲述的线程模型通常被称为Pthreads,或者POSIXthreads,更正式的名称应该是POSX1003.le-1995标准。
随后还将提供丶些其他的名称,不过目前你貝需记住Pthreads就够了。
在写本书时,SUN公司的Sola,Dga公司的DigitalUNIX、SGI公司的RX已经支持Pthreads。
其他一些主要的商用UNⅹ操作系统,像IM公司的AX和HP公的HPUX,不久也将支持线程模型,也许在你阅读木书的时候已经丈持Pthreads也已经在Linux利其他UNX系练中实现在个人电脑市场,做软公司的Wn32编程接口和BM的Os12都支持线程编程。
这些线程模型与Pthreads模型之间存在着一定的区别。
为了有效地使用它们,首先必须理解并发、同步和调度等概念,剩下的航是语法和样式的问题,个经验丰富的程序员可以适应这些模型中的任何一个线程模型已经很成功地在应用领域中丿泛运用,下面仅是其中的一些:●有大规模科学计算的程序能够充分利用多处理器系统的高性能程序和库代码能被多线程程序使用的库代码●实时应用程序和库代码●对慢速外设〔如网络和人类)执行输入输出操作的应用程序和库代码读者对象4书适合熟悉在UNX系列操作系统上使用ANSIC开发代码的高级程序人员阅读,并不要求具有线程或其他形状异步编程经验。
第1章介绍有关概念和术语,使你能够继续阅读个书后续部分,建议你不要跳过。
在阅读过程屮,你将发现关于线程各方面的有趣比喻和实例。
最后我希望你能够自已独地使用线程编程。
好了,祝你线程之旅愉快。
关于作者我从一开始就参与Pthreads标准的有关丁作,虽然最初的儿次会议我没有参加。
最后,我被迫在犹他州的雪鸟滑雪场的防雪崩掩体中度过∫一周,观看来自世界各地的代表们向他们」的滑雪板上涂蜡。
我本以为这是一个十分正式、乏味的会议,所以我没有带自己的滑雪板,只能租用滑设备在Pthreads标准最后投票阶段,我同其他几个POSIX丁作组设计线程同步接口和多处理器应用。
我也帮助定义了Aspen线程扩展规范,该规范让经成功应用于X/OpenXSH5我曾在DEC公可工作数年,从麻省分部到新罕布什尔州分部。
我是DEC公司线程架构的创始人之…,并在DigitalUNIX4..上设计并实现了大部分的Pthreads线程接口。
我还帮助人们开发、调试线程代码超过八年之久。
我的一个不成文的座右铭是“并发使生活更美好"。
线程不是面包片,程序员也不是面包师,所以我们只做能够做的事情致谢可能读者并不关心这部分内容,但确实是我和朋友们以及本书合作者希望见到的。
如果你是一个好奇的读者,请务必读下去尽管本书封面上只有我一个人的署名,但像木书这样的项目是不可能完全由一个人来完成的。
因为我了解很多线程知识,至少在线程通信方面相当在行,所以我也可能不需任何帮眇与出…本关于线程的书。
但结果是,本书要比假设的那木书更好。
首先要感谢的是我的经理Jeanfullerton,他给我时间并鼓励我在τ作肘写书。
感谢DECthreads组的其他同仁,他们是:Briankeane、Webbscales、JacquelineBerg、Richardlove、PeterPortante、BrianSilver、Marksimons和Stevejohn感谢GarretSwart,当他还在Digital系统研究中心工作时,就让我们了解POSX标准感谢Nawafbitar,他和Garret一起通宵T作,实现了Pthreads的第一个草案,并且不遗余力地推广POSIX线程标准,让每个人都理解线程到底是个什么东西,没有Garret,特别是如果没有Nawaf,Pthreads可能不会存在,至少不会像现在这么妤(缺乏完美并不是他们的责任——生活本来如此)感谢参与设计cma、Pthreads、UNX98、DCEthreads和DECthreads的所有人的帮助他们是:AndrewbirrellPaulborman、BobConti、BillCox、Jeffdenham、Petergilbert、Rickgreer、Mikegrier、KevinHarrisKenHobday、Mikejones、Steveneiman、BobKnighten、Leslielamport、DougLocke、Paulalong、Finnbarrp.Murphy、BillNoyce,Simonpatience、Haroldseigel、AlSimons、Jimwoodward和Johnzolnowsk特别感谢所有耐心审阅本书草稿的人们,他们是:BrianKemighan、Richstevens、DaveBrownell.billgallmeister、lanGinzburg、WillMorse、BryanO'Sullivan、BobrobillardDaveruddock和BilLewis。
感谢对结构和细节提出改进意见和建议的人们:Devangshah和BartSmaalders帮助回答了一些有关Solaris的问题,BryanO'Sullivan建议使用“舀水的程序员”的比喻感谢AddisonWesleylongmanF]JohnWait和Lanalanglois,他们耐心地等待并鼓励第次写书的我努力写好这本书。
感谢PamelaYee和ErinSweeney,他们管理了本书的整个出版过程。
感谢所有帮助过我的人们。
感谢我的妻子Annelederhos和我的女儿Amy、Alyssa,感谢她们对我的支持和陪伴。
感谢Charlesdodgson(Lewiscarrol),他在其经典小说Alice'sAdventuresinwonderland〈《艾丽丝漫游仙境》)、Throughthelooking-Glass(镜中漫游》)和TheHuntingoftheSnark(《捕猎蛇鲨》)中写了大量的关于线程编程的事情(译者注:是指小说中描写的多人之间的协调、并发T作,作者认为与线程间的同步和协调具有相似的含义)。
序言第1章概述….舀水的程序员幽···血幽噜血■■■自■■■口■平■_■平L·昏■昏罾早平■卩卩甲罾警肀昏罾昏4平平昏罾1昏昏昏1斷■昏1■昏晋11山翟■如■西d旷■晶旷hanm12术语定义…13异步编程是直观的…4关于木书的实例…5异步编程举例16线程的好处7线程的代价08选择线程还是不用线程2219POSIX线程概念第2章线程甲pd21建立和使用线程22线程的生命周期曾■T會32第3章同步…373.1不变量、临界区和谓词甲罪卩↓卩郾■郾看郾↓·T3互斥量3833条件变量…5934线程间的内存可视性第4章使用线程的几种方式∴…4.流水线1甲■曾昏個昏■18142T作组8943客户/服务器第5章线程高级编程5-次性初始化n11152属性11453取消.12054线程私有数据13755实时调度量鲁备14756线程和核实体16第6章POSX针对线程的调整1676.1fork昏山t1山h,,1.1676.2e7363进程结束6.4stdiolt鲁·TTP日■日白'自甲1甲即甲目日血!‘=P平■昏■■Ida=t1765线程安全的函数l7866信号P■昏182第7章Realcode………,…,,,4---.2067.1扩展同步鲁11自會■■p看p山山血即■晷着甲4■20672工作队列管理器『甲目目·由即?日甲■1晶吾hmpp唱p血命血』甲■品甲“■2373对现存库的处理……243第8章避免调试的提示■着酽eskd24881邐免不正确的代码.24982避免性能问题didP曾1血自幽甲p甲助D口1259第9章PoSⅨ多线程快速參考2639.1POSIX10031c-1995选项血·=F■山lF4·P甲Ia26392POSⅨX1003.1c-l995限制.2649.3POSⅨX1003lc-1995接口265第10章标准化过程展望30310.1X/OpenXSH5[UNIX98]102POSⅨX10031…鲁4P日命·h.44即4日4·-T血d哪甲‘4品=F4目“!31110.3POSX1003.14参考文献…",…4…-.17因特网上的线程资源320概述hetimehascome,theWalrussaldrotalkofmarythings,OrshoesaindshipsandsealingWaxoandkingsAndwhythe鵡boinghoAndwhetherpigshavewings-ewisCarrol,Throughthelooking-Glass在计算机专用术语中,线程是指机器中连续的、顺序的属性集合。
一个线程包含执行一系列机器指令所必须的机器状态,包括当前指令位置、地址和数据寄存器等。
个UNX进程可以理解为一个线程加上地址空间、文件描述符和其他数据。
某些UNⅨX版本支持“轻量级”或“变量级”进程,以便可以从进程中剔除部分或者所有数据,从而实现高效性能。
既然线程和轻量级进程都需要地址空间、文件描述符等数据,那么区别何在?区别在于多个线程可以共享一个地址空间,而做不同的事情。
在多处理器系统中,一个进程中的多个线程可以同时做不同的T作当计算机还活在玻璃洞穴中时(译者注:指计算机发展初期),需要处理事先准备好的穿孔卡片。
整个外部世界都在等待计算的结果,顶多可能听到程序员的抱怨声。
但是外部世界并不是一次只做-件事情,逐渐地,计算机开始模拟这种实际模式,增加多程序设计、多重处理、分时共亨、多处理器系统的能力,最终,实现了线程线程能够帮助你的应用程序走出洞穴。
Pthreads则能帮助你以-种优雅、高效、叮移植的方式完成这个厂作。
木章简单介绍理解和使用线程所需要的基本知识,其他章节则会针对各个环节做进一步的详细解释1.1节给出了包含多个化喻的故事,以此说明线程的工作模式。
这个故事并没有什么特别的,但在你理解我所讲的程序员和水桶的含义之前,可能显得有点怿12节给出了本书使用的基本概念和术语。
其中最重要的一个概念需要在此特别介绍,也与全书会对一些重点特别强调的习惯是一致的异步任何两个彼此独立运行的操作是异步的
2025/3/19 2:20:31 8.56MB 多线程 POSIX
1
本书介绍了OPNET的高级开发技术,包括自定义协议、无线网络方法、编程接口等。
2025/2/3 19:19:37 7.54MB OPNET 建模 仿真
1
第一章:AVR单片机C语言程序设计概述1.1AVR单片机简介1.2AVRStudio+WinAVR开发环境安装及应用1.3AVR-GCC程序设计基础1.4程序与数据内存访问1.5I/O端口编程1.6外设相关寄存器及应用1.7中断服务程序1.8GCC在AVR单片机应用系统开发中的优势第二章:PROTEUS操作基础2.1PROTEUS操作界面简介2.2仿真电路原理图设计2.3元件选择2.4仿真运行2.5PROTEUS与AVRStudio的联合调试2.6PROTEUS在AVR单片机应用系统开发中的优势第三章:基础程序设计3.1闪烁的LED3.2左右来回的流水灯3.3花样流水灯3.4LED模拟交通灯3.5单只数码管循环显示0~93.68只数码管滚动显示单个数字3.78只数码管显示多个不同字符3.8K1~K4控制LED移位3.9数码管显示4×4键盘矩阵按键3.10数码管显示拨码开关编码3.11继电器控制照明设备3.12开关控制报警器3.13按键发音3.14INT0中断计数3.15INT0及INT1中断计数3.16TIMER0控制单只LED闪烁3.17TIMER0控制的流水灯3.18TIMER0控制数码管扫描显示3.19TIMER1控制交通指示灯3.20TIMER1与TIMER2控制十字路口秒计时显示屏3.21用工作于计数方式的T/C0实现100以内的按键计数3.22用定时器设计的门铃3.23报警器与旋转灯3.24100000秒以内的计时程序3.25用TIMER1输入捕获功能设计的频率计3.26用工作于异步模式的T/C2控制的可调式数码管电子钟3.27TIMER1定时器比较匹配中断控制音阶播放3.28用TIMER1输出比较功能调节频率输出3.29TIMER1控制的PWM脉宽调制器3.30数码管显示两路A/D转换结果3.31模拟比较器测试3.32EEPROM读写与数码管显示3.33Flash程序空间中的数据访问3.34单片机与PC机双向串口通讯仿真3.35看门狗应用第四章:硬件应用4.174HC138与74HC154译码器应用4.274HC595串入并出芯片应用4.3用74LS148与74LS21扩展中断4.462256扩展内存4.5用8255实现接口扩展4.6可编程接口芯片8155应用4.7可编程外围定时计数器8253应用4.8数码管BCD解码驱动器7447与4511应用4.98×8LED点阵屏显示数字4.108位数码管段位复用串行驱动芯片MAX6951应用4.11串行共阴显示驱动器MAX7219与7221应用4.1216段数码管演示4.1316键解码芯片74C922应用4.141602字符液晶测试程序4.151602液晶显示DS1302实时时钟4.161602液晶工作于四位模式实时显示当前时间4.172×20串行字符液晶演示4.18LGM12864液晶显示程序4.19PG160128A液晶图文演示4.21TG126410液晶串行模式演示4.21用带SPI接口的MCP23S17扩展16位通用IO端口4.22用TWI接口控制MAX6953驱动4片5×7点阵显示器4.23用TWI接口控制MAX6955驱动16段数码管显示4.24用DAC0832生成多种波形4.25用带SPI接口的数模转换芯片MAX515调节LED亮度4.26正反转可控的直流电机4.27正反转可控的步进电机4.28DS18B20温度传感器测试4.29SPI接口温度传感器TC72应用测试4.30SHT75温湿度传感器应用4.31用SPI接口读写AT25F10244.32用TWI接口读写24C044.33MPX4250压力传感器测试4.34MMC存储卡测试4.35红外遥控发射与解码仿真第五章:综合设计5.1多首电子音乐的选播5.2电子琴仿真5.3普通电话机拨号键盘应用5.4手机键盘仿真5.5数码管模拟显示乘法口诀5.6用DS1302与数码管设计的可调电子钟5.7用DS1302与LGM12864设计的可调式中文电子日历5.8用PG12864LCD设计的指针式电子钟5.9高仿真数码管电子钟5.101602LC
2025/1/1 11:28:29 5.27MB 单片机 c语言 AVR
1
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。
socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;
HTTP是轿车,提供了封装或者显示数据的具体形式;
Socket是发动机,提供了网络通信的能力。
2024/10/15 5:05:23 21KB socket通信
1
Aspose.Words是一款强大的文档处理库,专为.NET开发者设计,用于在应用程序中创建、编辑、转换和显示MicrosoftWord文档。
这个版本是18.7,涵盖了Core版本,这意味着它支持.NETCore框架,使得跨平台开发变得更加便捷。
无水印和功能限制的特点,使其成为学习和测试的理想选择,但请注意,它不适用于商业用途。
Aspose.Words的核心功能包括:1.**创建和编辑文档**:允许程序员动态创建新的Word文档,或者对现有文档进行编辑。
可以插入文本、图片、表格、形状等元素,调整格式,设置样式和主题。
2.**文档转换**:支持将Word文档转换成多种格式,如PDF、HTML、XPS、EPUB、图像等。
这对于生成报告、网页、电子书或打印预览非常有用。
3.**模板处理**:利用MailMerge功能,Aspose.Words可以从数据源(如数据库、CSV文件或XML)填充模板,生成批量定制的文档,例如信函、发票或证书。
4.**编程接口**:提供直观的API,便于.NET开发者集成到他们的项目中。
无论是C#、VB.NET还是其他.NET语言,都能轻松调用Aspose.Words的功能。
5.**文档比较**:能够比较两个Word文档的差异,并生成合并结果,这对于版本管理和协同工作很有帮助。
6.**渲染和打印**:Aspose.Words可以将文档渲染为高质量的图像,便于在Web应用中预览,也可以直接发送到打印机进行打印。
7.**SkiaSharp依赖**:此版本中提到了NuGet包SkiaSharp1.60.0。
SkiaSharp是一个跨平台的2D图形处理库,用于绘制图形和文本,Aspose.Words可能利用它来增强在.NETCore中的图形渲染能力。
8.**兼容性**:Aspose.Words兼容多种版本的MicrosoftWord文件格式,包括DOC、DOCX、RTF、ODT等,同时也支持OpenXML标准。
9.**性能优化**:由于其高效的内存管理和算法,Aspose.Words在处理大型文档时也能保持良好的性能。
10.**错误处理和调试**:提供了详细的错误日志和异常处理机制,有助于开发者在遇到问题时进行诊断和修复。
Aspose.Words是一个全面且功能强大的工具,对于需要在.NET环境中处理Word文档的开发者来说,它是一个不可或缺的资源。
通过学习和使用Aspose.Words18.7,开发者可以提高工作效率,实现更多复杂的文档操作。
但请务必注意版权问题,确保仅用于非商业目的。
2024/10/10 15:53:07 7.73MB Aspose Aspose.Words word
1
在开始这段旅程之前我们先了解一下OpenGL到底是什么。
一般它被认为是一个应用程序编程接口(ApplicationProgrammingInterface,API),它包含了一系列可以操作图形、图像的方法。
然而,OpenGL本身并不是一个API,仅仅是一个规范,由Khronos组织制定并维护。
OpenGL严格规定了每个函数该如何执行,以及它们该如何返回。
至于内部具体每个函数是如何实现的,将由OpenGL库的开发者自行决定(注:这里开发者是指编写OpenGL库的人)。
因为OpenGL规范并没有规定实现的细节,具体的OpenGL库允许使用不同的实现,只要其功能和结果与规范相匹配(亦即,作为用户不会感受到功能上的差异)。
实际的OpenGL库的开发者通常是显卡的生产商。
每个你购买的显卡都会支持特定版本的OpenGL,通常是为一个系列的显卡专门开发的。
当你使用苹果系统的时候,OpenGL库是由苹果自身维护的。
在Linux下,有显卡生产商提供的OpenGL库,也有一些爱好者改编的版本。
这也意味着任何时候OpenGL库表现的行为与规范规定的不一致时,基本都是库的开发者留下的bug。



2024/9/14 12:38:42 9.8MB openGL learnO 图形学 数学
1
**JodConverter2.2.2:JavaOffice文档转换利器**JodConverter是一个基于Java的开源库,专为处理Office文档转换而设计。
在这个压缩包中,我们有两个主要文件:`jodconverter-2.2.2.jar`和`jodconverter-2.2.2说明.txt`。
它们一起提供了在Java环境中转换MicrosoftOffice和OpenOffice文档的能力,同时也支持预览功能。
**核心组件:jodconverter-2.2.2.jar**`jodconverter-2.2.2.jar`是JodConverter的核心库文件,它包含了所有必要的类和方法来实现文档转换。
这个JAR文件可以直接在Java项目中作为依赖引入,使得开发者能够轻松地在代码中调用转换功能。
JodConverter内部依赖于OpenOffice或LibreOffice,这两个开源办公套件能够处理各种Office文档格式,并且JodConverter通过与它们的API交互来实现文档转换。
**文档转换原理**JodConverter的工作原理是通过模拟用户界面与OpenOffice/LibreOffice进行通信,将源文件(如.doc、.ppt或.xlsx)转化为目标格式(如.pdf、.html或.ods)。
这种转换过程是通过ODF(OpenDocumentFormat)进行的,ODF是一种开放的文档标准,被OpenOffice和LibreOffice广泛支持。
**配合OpenOffice使用**为了使JodConverter正常工作,你需要确保在运行环境中已经安装了OpenOffice或LibreOffice,并且其服务正在运行。
JodConverter会连接到本地的OpenOffice/LibreOffice实例,然后利用其转换引擎进行文件转换。
确保正确配置OpenOffice的路径和端口设置,以便JodConverter可以找到并与其建立连接。
**使用JodConverter-2.2.2说明.txt**`jodconverter-2.2.2说明.txt`文件很可能是提供关于如何使用JodConverter的详细指南,包括如何配置、如何在代码中引入JodConverter,以及如何执行实际的转换操作。
这个文件可能包含了一些示例代码和命令行参数,帮助开发者快速上手。
**应用场景**JodConverter适用于多种场景,例如:1.**服务器端文档转换**:在Web应用中,可以使用JodConverter将用户上传的Office文档转换成适合在线预览的格式,如PDF。
2.**批量转换**:对于需要大量文档格式转换的业务流程,JodConverter可以通过编程接口进行批量处理,提高效率。
3.**跨平台兼容**:由于JodConverter是基于Java的,所以它可以运行在任何支持Java的平台上,包括Windows、Linux和MacOS。
**最佳实践**使用JodConverter时,应遵循以下最佳实践:1.**优化性能**:为了提高转换速度,可以考虑启动多个OpenOffice/LibreOffice服务实例,并让JodConverter根据需要分配任务。
2.**错误处理**:在代码中添加适当的错误处理机制,以应对OpenOffice服务未运行或网络连接问题。
3.**版本兼容性**:注意JodConverter与OpenOffice/LibreOffice的版本兼容性,确保使用的转换库与办公套件版本匹配。
4.**资源管理**:及时关闭OpenOffice的连接,避免资源泄露。
JodConverter2.2.2是一个强大且灵活的工具,能够帮助开发者轻松地在Java应用程序中实现Office文档的转换和预览。
通过正确配置和使用,可以大大提高文档处理的效率和便捷性。
2024/9/5 17:04:37 28KB java jodconverter openoffice
1
MPJ编程接口为Java应用程序提供类MPI消息传递应用。
文中帮助文档阐述MPJ并行编程框架的设计、实现,探讨其体系架构、实现机制及相关的技术特征,详细描述MPJExpress的安装配置过程。
2024/8/24 4:27:12 4.42MB MPJ
1
Sybasease15.7linuxx64版本Sybase是一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。
Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。
系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性
2024/8/10 4:45:45 69B sybase ase 15.7
1
·提供了MySQL语句、函数、配置选项和实用工具的一个完整手册。
  ·给出了几个指导章节用于帮助新手入门。
  ·为PHP、Perl和C语言提供了应用程序编程接口(API)。
  ·在每章的API开头部分提供了简要的指南。
  ·新增复制、触发器和存储过程章节。
  ·提供了许多MySQL的实用示例。
  ·给出了一些有用的提示,用于帮助读者克服难题。
  无论你为何而使用MySQL,本书充满了大量的知识财富,给你节省了许多用于尝试的时间以及令人厌烦的在线搜索。
2024/8/5 9:49:19 47.71MB MySql
1
共 38 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡