摘要:
在“.pro”文件中添加如下语句:QT += network在h头文件中包含相关头文件#include 在头文件中添加QTcpSocket的类成员变量与函数private: QTcpSocket *tcpSocket; void dataSend();private slots: ... 阅读全文
posted @ 2015-05-12 17:11
张仕传
阅读(208)
评论(0)
推荐(0)
摘要:
在“.pro”文件中添加如下语句:QT += network在h头文件中包含相关头文件#include 在头文件中添加QUdpSocket的类成员变量与函数private: QUdpSocket *udpSocket;; void dataSend();private slots: ... 阅读全文
posted @ 2015-05-12 17:10
张仕传
阅读(279)
评论(0)
推荐(0)
摘要:
QT如果要进行网络编程首先需要在.pro”中添加如下代码:QT += network在头文件中包含相关头文件:#include #include QHostInfo类用于获得主机信息。示范代码如下: QString localHostName = QHostInfo::localHostName()... 阅读全文
posted @ 2015-05-12 17:08
张仕传
阅读(626)
评论(0)
推荐(0)
摘要:
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器等。QMainWindow中菜单需要QMenu类和QAction类来实现。QAction类定义了菜单的具体行为。QMainWin... 阅读全文
posted @ 2015-05-12 17:07
张仕传
阅读(313)
评论(0)
推荐(0)
摘要:
QT提供了QFile类用于文件读写。QFile可以读写文本文件,也可以读写二进制文件#include #include 读文本文件例子。 QString s; QFile file("abc.txt"); if (file.open(QFile::ReadOnly)) { ... 阅读全文
posted @ 2015-05-12 17:06
张仕传
阅读(277)
评论(0)
推荐(0)
摘要:
新建Qt 应用,项目名称为“c”,基类选择“QWidget”,取消“创建界面”复选框的选中状态。添加该工程的提供主要显示界面的函数所在的文件,在“c”项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件...”菜单项,在弹出的对话框中选择“C++ 类”选项。单击“选择”按钮,弹出“C++ 类向导... 阅读全文
posted @ 2015-05-12 17:05
张仕传
阅读(337)
评论(0)
推荐(0)
摘要:
各种基本对话框通过调用各自不同的静态函数来完成其功能,具体说明见表标准文件对话框。其函数形式如下:QString QFileDialog::getOpenFileName( QWidget* parent=0, //标准文件对话框的父窗口 ... 阅读全文
posted @ 2015-05-12 17:04
张仕传
阅读(242)
评论(0)
推荐(0)
摘要:
通常,子Widget是通过使用布局对象在窗口中进行排列的,而不是通过指定位置和大小进行排列的。在此,构造一个并排排列的标签和行编辑框Widget:QLabel *label = new QLabel(tr("Name:"));QLineEdit *lineEdit = new QLineEdit()... 阅读全文
posted @ 2015-05-12 17:01
张仕传
阅读(227)
评论(0)
推荐(0)
摘要:
QDateTime类,头文件#include 可以使用QDateTime类来获得系统时间。通过QdateTime::currentDateTime()来获取本地系统的时间和日期信号。可以通过date()和time()来返回datetime中的日期和时间部分,代码如下:QDateTime *datat... 阅读全文
posted @ 2015-05-12 16:58
张仕传
阅读(238)
评论(0)
推荐(0)
摘要:
字符串有如下几个操作符。 –QString提供了一个二元的“+”操作符用于组合两个字符串,并提供了一个“+=”操作符用于将一个字符串追加到另一个字符串的末尾,例如:QString str1 = "Welcome ";str1=str1+"to you! "; //str1=" Welcome to... 阅读全文
posted @ 2015-05-12 16:57
张仕传
阅读(218)
评论(0)
推荐(0)
摘要:
代码实现界面和槽代码实现界面和槽在上述工程的dialog.h中添加如下加黑代码:加入头文件:#include #include #include class Dialog : public QDialog{ Q_OBJECTpublic: Dialog(QWidget *parent =... 阅读全文
posted @ 2015-05-12 16:55
张仕传
阅读(176)
评论(0)
推荐(0)
摘要:
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立基于window界面所需的功能。Qt是诺基亚公司的一个产品。1996年,Qt进入商业领域,已成为全世界范围内数千种成功的应用程序的基础。它也是目前流行的Linux桌面环境KDE 的基础,KDE是Linux发行版的主要一个标准... 阅读全文
posted @ 2015-05-12 16:54
张仕传
阅读(245)
评论(0)
推荐(0)
摘要:
通过在过程化编程语言中嵌入SQL语句而开发出的应用程序称为Pro程序。在C/C++语言中嵌入SQL语句而开发出的应用程序称为Pro*C/C++程序。 –在通用编程语言中使用的SQL称为嵌入式SQL; –在SQL标准中定义了多种语言的嵌入式SQL。宿主语言 Pro程序C/C++ Pro*C/C... 阅读全文
posted @ 2015-05-12 16:53
张仕传
阅读(559)
评论(0)
推荐(0)
摘要:
ORACLE创建序列语句CREATE SEQUENCE 序列名increment by (序列步长)start with (序列起始值)maxvalue (序列最大值)删除序列DROP SEQUENCE 序列名得到序列的下一个值序列名.nextval创建和使用序列的例子CREATE SEQUENCE... 阅读全文
posted @ 2015-05-12 16:48
张仕传
阅读(141)
评论(0)
推荐(0)
摘要:
创建用户create user–概述:在oracle中要创建一个新的用户使用 create user 语句,一般是具有dba(数据库管理员)的权限才能使用。–基本语法:create user 用户名 identified by 密码create user dbuser1 identified by ... 阅读全文
posted @ 2015-05-12 16:46
张仕传
阅读(122)
评论(0)
推荐(0)
摘要:
sqlplus是一个最常用的工具,具有很强的功能,主要有: –1. 数据库的维护,这一般在服务器上操作,不可以远程操作。 –2. 执行sql语句执行pl/sql。 –3. 执行sql脚本。 –4. 数据的导出,报表。 –5. 应用程序开发、测试sql/plsql。 –6. 生成新的sql... 阅读全文
posted @ 2015-05-12 16:44
张仕传
阅读(190)
评论(0)
推荐(0)
摘要:
捕获SIGUSR1信号void catch_Signal(int Sign){ switch (Sign) { case SIGINT: printf("SIGINT Signal\n"); exit(0); case SIGUSR1: ... 阅读全文
posted @ 2015-05-12 08:13
张仕传
阅读(316)
评论(0)
推荐(0)
摘要:
sigaction函数的功能是检查或修改与指定信号相关联的处理动作,该函数取代了signal函数。#include int sigaction(int signo, const struct sigaction *act, struct sigaction*oact);成功返回0,失败返回-1。参数... 阅读全文
posted @ 2015-05-12 08:12
张仕传
阅读(114)
评论(0)
推荐(0)
摘要:
发送信号 –使用kill命令•在命令行使用kill命令,向指定进程发送信号。 –使用kill函数#include #include int kill(pid_t pid, int sig);•参数pid指定一个要杀死的进程,而sig是要发送的信号。kill函数例子int main(int arg... 阅读全文
posted @ 2015-05-12 08:11
张仕传
阅读(667)
评论(0)
推荐(0)
摘要:
pause函数挂起调用它的进程,直到有任何消息到达。调用进程必须由能力处理送达的信号,否则信号的默认部署就会发生。。#include int pause(void);只有进程捕获到一个信号的时候pause才返回,如果递送到的信号引发了对信号的处理,那么处理工作将在pause返回前执行。pause总是... 阅读全文
posted @ 2015-05-12 08:09
张仕传
阅读(861)
评论(0)
推荐(0)
摘要:
程序在执行的时候,几乎任何时刻都会发生事件。信号通常用来向一个进程通知事件。信号是不可提前预知的,所以信号是异步的信号随时都可能发生,接收信号的进程也可以没有控制权。每个信号名都以SIG开头,信号名的定义在中。许多情况下都会出现信号,如硬件异常,非法的内存引用,软件异常等等。前面讲过的kill函数就... 阅读全文
posted @ 2015-05-12 08:06
张仕传
阅读(311)
评论(0)
推荐(0)
摘要:
本章介绍的函数是库函数,而不是系统调用。库函数和系统调用的区别在于系统调用能够让你直接访问linux内核提供的服务,比如上一章的函数就是基于系统调用的函数。系统调用函数存在与内核空间,库函数都是用户模式,所以系统调用不当可能会破坏系统,但库函数调用风险就要小很多。库函数对I/O操作进行缓冲,减少了系... 阅读全文
posted @ 2015-05-12 08:04
张仕传
阅读(145)
评论(0)
推荐(0)
摘要:
打开和关闭文件描述符。#include #include #include #include int open(const char *pathname, int flags);int close(int fd);Open试图打开参数pathname中的一个文件。参数flags指定访问该文件的方式。... 阅读全文
posted @ 2015-05-12 07:59
张仕传
阅读(382)
评论(0)
推荐(0)
摘要:
大多数资源,Linux都是以文件的方式来访问。Linux系统上的文件部分类型说明 –普通文件。•就是储存到磁盘上大家所操作的各种数据文件; –管道文件。•是一个从一端发送数据,从另一端接收数据的通道; –目录•也叫目录文件,是包含了保存在目录中文件的列表; –设备文件•是一种特殊文件,提供了... 阅读全文
posted @ 2015-05-12 07:54
张仕传
阅读(337)
评论(0)
推荐(0)
摘要:
如何将域名转化为IP地址#include #include #include #include #include #include #include const char *getIPAddrbyHostname(const char *hostname){ static char s[128... 阅读全文
posted @ 2015-05-12 07:53
张仕传
阅读(140)
评论(0)
推荐(0)
摘要:
阻塞socket。 –阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。 –对于文件操作read,fread函数调用会将线程阻塞。 –对于socket,accept与recv、recvfrom函数调用会将线程阻塞。 –为了避免整个进程被阻塞后挂起,所以在阻塞模式... 阅读全文
posted @ 2015-05-12 07:49
张仕传
阅读(2147)
评论(1)
推荐(0)
摘要:
UDP和TCP的对比。 –UDP处理的细节比TCP少。 –UDP不能保证消息被传送到目的地。 –UDP不能保证数据包的传递顺序。 –TCP处理UDP不处理的细节。 –TCP是面向连接的协议。 –UDP是无连接协议。 –TCP保持一个连接。 –UDP只是把数据发送出去而已。TCP的优点... 阅读全文
posted @ 2015-05-12 07:43
张仕传
阅读(410)
评论(0)
推荐(0)
摘要:
一个程序使用套接字需要执行4个步骤。 –分配套接口和初始化。 –连接。 –发送或接收数据。 –关闭套接字。涉及到的调用包括socket、 bind、 listen、 connect、 accept、 recv、 send。分配套接口和初始化。 –我们需要做的第一件工作就是分配套接口。 –... 阅读全文
posted @ 2015-05-12 07:40
张仕传
阅读(150)
评论(0)
推荐(0)
摘要:
以前我们讲过进程间通信,通过进程间通信可以实现同一台计算机上不同的进程之间通信。通过网络编程可以实现在网络中的各个计算机之间的通信。进程能够使用套接字实现和其他进程或者其他计算机通信。同样的套接字既可以实现进程间通信,也可以实现计算机之间通信。套接字是通信端点的抽象。与文件描述符一样,套接字需要使用... 阅读全文
posted @ 2015-05-12 07:35
张仕传
阅读(471)
评论(0)
推荐(0)
摘要:
如何确保只启动一个守护进程的实例。#!/bin/shWHOAMI=`whoami`PID=`ps -u $WHOAMI | grep abc | awk '{print $1}'`if (test "$PID" = "") then ./abcfi注意:脚本文件的名称不要有‘abc’字样,不然执行p... 阅读全文
posted @ 2015-05-12 00:54
张仕传
阅读(133)
评论(0)
推荐(0)
摘要:
要和一个守护进程通信,你要向它发送信号,让它以某种方式相应。例如:强行要求一个守护进程重新读取它的配置文件,或者改变守护进程的行为,或者指示守护进程结束运行。使用信号与守护进程通信。守护进程中添加信号捕捉函数void catch_Signal(int Sign){ switch(Sign) { ca... 阅读全文
posted @ 2015-05-12 00:53
张仕传
阅读(289)
评论(0)
推荐(0)
摘要:
守护进程(daemon)。守护进程是一个后台进程,它无需用户输入就能运行,经常是提供某种服务。Linux做为服务器是,主要的进程也都是为系统或者用户提供后台服务功能。常见的守护进程有Web服务器、邮件服务器以及数据库服务器等等。守护进程不能够控制终端,所以任何输入或者输出都需要做特殊处理。守护进程看... 阅读全文
posted @ 2015-05-12 00:52
张仕传
阅读(1797)
评论(0)
推荐(0)
摘要:
Linux允许任何进程把一个磁盘文件映像到内存中。使用内存映像文件有两个主要优点 –加速文件I/O操作,不同的I/O调用如read或者fputs通过内核缓冲读出或写入数据。虽然Linux具有一种快速而先进的磁盘缓冲算法,但最快的磁盘访问也总是要比最慢的内存访问慢。 –共享数据,如果多个进程要访问... 阅读全文
posted @ 2015-05-12 00:46
张仕传
阅读(712)
评论(0)
推荐(0)
摘要:
一个进程由于以下5个原因中的一个终止。 –main函数调用了return; –调用了exit函数; –调用了_exit函数; –调用了abort函数; –被一个信号终止。前三个原因都是正常终止,后面两个是非正常终止。无论进程为何终止,最后都执行相同的内核代码,关闭打开的文件,释放内存资源,... 阅读全文
posted @ 2015-05-12 00:42
张仕传
阅读(212)
评论(0)
推荐(0)
摘要:
system系统调用#include int system(const char *string);system函数传递给/bin/sh –c 来执行string所指定的命令。string中可以包含选项和参数。如果没有找到/bin/sh,函数返回127,如果出现其他错误返回-1,成功返回0,但如果s... 阅读全文
posted @ 2015-05-12 00:40
张仕传
阅读(212)
评论(0)
推荐(0)
摘要:
传统的Linux模型里有三种创建或者修改进程的操作: –system用于调用shell,执行一个指定的命令; –fork用于创建一个新的进程,该进程几乎是当前进程的一个完全拷贝; –exec可以在进程中用另外的程序来替换当前运行的进程;什么是进程?–进程是一个正在执行的程序实例,他也是Linu... 阅读全文
posted @ 2015-05-12 00:36
张仕传
阅读(329)
评论(0)
推荐(0)
摘要:
so文件在linux中为共享库,与windows下的dll类似。so文件中的函数可供多个进程调用,最大可能的提供二进制代码的复用。共享库可以使代码的维护工作大大简化,当修正了一些错误或者添加了新特性的时候,用户只需要获得升级后的so并安装他就可以。注:即使不同的进程调用同一个so文件,通过共享库并不... 阅读全文
posted @ 2015-05-12 00:34
张仕传
阅读(618)
评论(0)
推荐(0)
摘要:
共享内存是由内核出于在多个进程间交换信息的目的而留出的一块内存区(段)。如果段的权限设置恰当,每个要访问该段内存的进程都可以把它映像到自己的私有地址空间中。如果一个进程更新了段中的数据,其他进程也立即会看到更新。由一个进程创建的段,也可以由另一个进程读写。每个进程都把它自己对共享内存的映像放入自己的... 阅读全文
posted @ 2015-05-12 00:30
张仕传
阅读(331)
评论(0)
推荐(0)
摘要:
有名管道(FIFO)。有名管道是持久稳定的。它们存在于文件系统中。FIFO比无名管道作用更大,因为它们能让无关联的进程之间交换数据。一个shell命令可以建立有名管道mkfifo [option] namemkfifo创建一个名为name的有名管道mkfifo fifo1。 –创建一个有名管道fi... 阅读全文
posted @ 2015-05-12 00:28
张仕传
阅读(672)
评论(0)
推荐(0)
摘要:
无名管道无名管道时半双工的,就是对于一个管道来讲,只能读,或者写。无名管道只能在相关的、有共同祖先的进程间使用。一个fork或者exec调用创建的子进程继承了父进程的文件描述符。打开和关闭管道。int pipe(int filedes[2]);在你从一个管道中读出或者写入数据,这个管道必须存在。如果... 阅读全文
posted @ 2015-05-12 00:24
张仕传
阅读(341)
评论(0)
推荐(0)
摘要:
线程共享进程的内存空间,打开的文件描述符,全局变量。当有多个线程同时访问一块内存空间或者一个变量、一个文件描述符,如果不加控制,那么可能会出现意想不到的结果。互斥(mutex)是相互排斥的意思,它是一种锁或者信号灯。互斥用来保护多个线程共享的数据和结构不会被同时修改,一个互斥锁只能有两个状态 –l... 阅读全文
posted @ 2015-05-12 00:23
张仕传
阅读(179)
评论(0)
推荐(0)
摘要:
线程创建。 –在进程中只有一个控制线程 –程序开始运行的时候每个进程只有一个线程,它是以单线程方式启动的,在创建多个线程以前,进程的行为与传统的进程没有区别。 –gcc在链接的时候需要增加-lpthread选项。 –创建一个线程调用pthread_create函数。#include int ... 阅读全文
posted @ 2015-05-12 00:21
张仕传
阅读(360)
评论(0)
推荐(0)
摘要:
进程是一个实体。每一个进程都有它自己的内存地址段(heap、stack等等)进程是执行中的程序。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。进程是操作系统中最基本、重要的概念。单线程的进程可以简单的认为只有一个线程的进程。一个进程在同一时间只做一件事,有了多线程后一... 阅读全文
posted @ 2015-05-12 00:13
张仕传
阅读(114)
评论(0)
推荐(0)

浙公网安备 33010602011771号