UNIX - 技术教程文章

Unix网络编程之环境搭建【图】

环境搭建 在尝试UNP书上的样例时,会由于找不到"unp.h"等问题无法编译成功。因此在学习之前须要先搭建好编译环境。 步骤 <1>下载 UNIX网络编程源码unpv13e.tar.gz下载链接 http://download.csdn.net/detail/ymsdu2004/4906181 <2>解压 进入该文件夹后运行./configure 再进入lib文件夹下 cd lib 运行 make此时会在上层文件夹(就是刚才有configure那个文件夹)生成libunp.a文件 <3>复制libunp.a到 /usr/lib下 (以后gcc编...

《UNIX环境高级编程》笔记--IO多路转换【图】

如何才能read多个描述符呢,有下面这些方法。a.使用多个进程,每个进程执行阻塞read,但是这也产生了问题,操作什么时候停止?如果子进程接收到文件结束符,那么子进程终止,然后父进程接收到SIGCHLD信号,但是,若父进程终止,那么父进程应该通知子进程停止,为此可以使用一个信号(例如SIGUSR1),但这是程序变得更加复杂。b.使用多线程,这避免了终止的复杂性,但是要求处理线程之间的同步同样是程序复杂。c.使用非阻塞IO。将多...

unix网络编程代码(2)【代码】【图】

继续贴《unix网络编程》上的示例代码。这次是一个反射程序,反射是客户端讲用户输入的文本发送到服务器端,服务器端读取客户端发过来的文本消息,然后原封不动的把文本消息返回给客户端。使用tcp协议连接客户端和服务端,我已经在我的阿里云服务器上测试过了,能够完美运行。 首先是头文件wrap.h,在该头文件中,声明了封装部分网络编程套接字api的包裹函数,以及某些宏定义。 1#ifndef WRAP_H_2#define WRAP_H_3 4 #include <stdi...

POJ 1087 A Plug for UNIX 会议室插座问题 构图+最大流【代码】

题目链接:POJ 1087 A Plug for UNIX A Plug for UNIXTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13809 Accepted: 4623Description You are in charge of setting up the press room for the inaugural meeting of the United Nations Internet eXecutive (UNIX), which has an international mandate to make the free flow of information and ideas on the Internet as cumbersome and bureaucratic as possib...

UNIX环境高级编程(13-守护进程)【代码】【图】

主要特点一般在系统启动时装入,仅在系统关闭时终止。大多数守护进程以超级用户特权运行。所有的守护进程都没有控制终端,其终端名设置为问号。 内核守护进程以无控制终端方式启动。用户层守护进程可以通过调用setsid实现。用户层守护进程的父进程是init进程。消息输出前面提到,守护进程是没有控制终端的,显然无法将自己的消息输出到标准输出或标准错误上。而且系统中运行着许多守护进程,因此需要一个集中的守护进程记录设施,即...

Unix BSD Linux的口令机制初探

1.概述   早期UNIX系统把用户口令保存在一个纯文本可读的“口令文件”中,这可能在系统管理员注意不到的情况下被截取并暴露。它也可能在一次偶然事件中泄露。   从AT&T UNIX版本6开始,Thompson 等决定采用一个不同的方式: U N I X口令采用以美国军方M - 2 0 9密码机为模型的基于旋转的算法来进行编码。这种快速算法被证明对穷尽纯文本搜索有弱点并被AT&T UNIX版本7中出现的更先进的crypt ( )库代替。   现在Unix/Linux将口...

C#unix时间戳转换【代码】

/// <summary> /// 日期转换成unix时间戳 /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long DateTimeToUnixTimestamp(DateTime dateTime) {var start = new DateTime(1970, 1, 1, 0, 0, 0, dateTime.Kind);return Convert.ToInt64((dateTime - start).TotalSeconds); }/// <summary> /// unix时间戳转换成日期 /// </summary> /// <param name="unixTimeStamp">时间戳(秒)</para...

Linux/UNIX之文件和目录(1)

文件和目录(1)stat、fstat和lstat函数#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat(const char *path, struct stat*buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct stat*buf);一旦给出path,stat函数返回与词文件相关的信息结构。fstat获取已在描述符fd上打开的有关信息。lstat类似于stat,但当命名的文件是一个符号连接时,lstat返回该符号链接的有关信息,而不是该...

《unix高级环境编程》终端 I/O——终端 IO 基本概述【图】

终端基本概念终端 IO 是一种字符型设备,终端特殊设备文件一般有以下几种:串行端口终端:是使用计算机串行端口连接的设备,计算机把每个串行端口都看作是一个字符设备。串行端口所对应的设备名称 /dev/ttySn(n表示从0开始的整数);伪终端:是成对的逻辑终端设备,例如 /dev/ptyp3 和/ dev/ttyp3(在设备文件系统中分别是 /dev/pty/m3 和/ dev/pty/s3 ),它们与实际物理设备并不直接相关;控制终端:是当前进程的控制终端的设备特...

《unix环境高级编程》 读书笔记 (9)

目录: http://blog.csdn.net/alex_my/article/details/39346381signals1 signal concepts信号是一种软中断,可以由以下情形触发:-1: 用户按下某些终端键,例如ctrl + D-2: 硬件异常,例如除数为0,无效的内存引用-3:kill(2), kill(1)-4: 当软件条件达成,且有进程需要得到此通知当信号发生时,可以告诉内核进行以下处理:-1:忽略信号;有两个信号不能被忽略,SIGKILL, SIGSTOP, 不能被忽略的原因是这两个信号为内核和超级用户提...

操作系统 - unix和windows下进程异同

在UNIX系统中,仅仅有一个系统调用能够用来创建新进程:fork。这个系统调用会创建一个与调用进程相同的副本。在调用了fork之后。这两个进程(父进程和子进程)拥有相同的存储映像、相同的环境字符串和相同的打开文件。这就是所有情形。同城,子进程接着运行execve或一个类似的系统调用,以改动其存储映像并运行一个新的程序。比如,当一个用户在shell中键入命令时,shell就创建一个子进程,然后,这个子进程运行sort。之所以要安排...

unix环境高级编程----进程控制wait()

一、wait()函数当一个进程中调用wait()函数的时候(1)如果其所有的子程序都还在运行,则阻塞(2)如果一个子进程已终止,则等待父进程获取其终止状态。(3)如果没有子进程,则返回错误。下面的实例中,在父进程中调用wait(),如果子进程还没有运行完毕,则将自己调入阻塞状态。等待子进程运行结束后,将子进程的资源回收后,自己再运行。#include <stdio.h> #include <unistd.h> #include <wait.h> #include <stdlib.h>int...

Unix,windows和Mac中的换行

Unix 系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车 >”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。所以,如果你需要跨平台处理文本文件,可能会被回车换行搅得有点头大。 0x0D(asc码是13) 指的是“回车” \r是把光...

亚稳态-竺清儿-ChinaUnix博客

来源:http://blog.chinaunix.net/uid-25553717-id-3286143.html#0-hi-1-45226-89fdc647f52c5196c0d5da60d38d89ea原文:http://www.cnblogs.com/farbeyond/p/5202957.html

Linux Unix shell 编程指南学习笔记(第三部分)

第十三章 登陆环境登陆系统时,输入用户名和密码后,如果验证通过,则进入登录环境。登录过程文件/etc/passwd$HOME.profile定制$HOME.profile/etc/passwd 文件解析(抽取其中的一行作为示例): 1 2 3 4 5 6 7 root: <span style="white-space:pre"> </span>x: 0: 0: root: <span style="white-space:pre"> </span>/root: <span style="white-space:pre"> </span>/bin/bash 第 1 域 : 登录名 第 2 域 : ...

《Unix网络编程》中的错误处理函数【代码】

#include "net.h"#include <syslog.h> // syslog() int daemon_proc;staticvoid err_doit(int errnoflag, int level, constchar *fmt, va_list ap) {int errno_save, n;char buf[MAXLINE + 1];errno_save = errno;#ifdef HAVE_VSNPRINTFvsnprintf(nuf, MAXLINE, fmt, ap); #elsevsprintf(buf, fmt, ap); #endifn = strlen(buf);if (errnoflag)snprintf(buf + n, MAXLINE - n, ": %s", strerror(errno_save));strcat(buf, "\n")...

RedHat5.1下安装Seismic Unix44R1【图】

以前安装过好几次,在这里总结下。不足之处,欢迎批评指正。 用su44用户登录,修改环境变量(~/.bash_profile文件中添加)export CWPROOT=/home/`whoami`/cwpexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libPATH=$PATH:$HOME/bin:.:$CWPROOT:$CWPROOT/binexport PATH 保存退出,使之生效(source ~/.bash_profile)。将软件包放置于${CWPROOT}目录下,如下图:接下来正式开始安装SU,提前要把src目录中配置文件Makefile....

Linux和类Unix系统上5个惊艳的开源备份软件(转)【图】

一个好的备份计划是非常必要的,这样可以有能力恢复被下面几种情形顺坏的数据:人为损坏RAID或者磁盘损坏文件系统损坏数据中心损毁以及其它  在这篇文章里我会给你列举一些惊艳的开源备份软件。当给企业选择备份软件的时候应该注意什么? 确保你部署的备份软件支持以下特性:  1、开源软件:你必须使用那些源代码可以被自由修改的软件。这样即使项目停止了或者没有补丁更新也可以确保你能恢复数据。  2、跨平台支持:确保备...

HP-UNIX 安装apache2.4.16过程中错误及解决方法

系统版本:HP-UX zhwg B.11.23 U ia64 2667688584 unlimited-user license使用depot安装apache2.4.16和相关依赖包后zhwg:/usr/local/apache2/adm # cat error_log/usr/lib/hpux32/dld.so: Unsatisfied code symbol ‘strerror_r‘ in load module ‘/usr/local/apr/lib/libapr-1.so‘.zhwg1:/usr/local/apache2/bin # ./apachectl -k start 启动不起来,也报如上错误。zhwg1:/usr/local/apache2/bin # ./apachectl -V 可以查出版本...

mysql 中 unix_timestamp,from_unixtime 时间戳函数

1.unix_timestamp将时间转化为时间戳。(date 类型数据转换成 timestamp 形式整数)没传时间参数则取当前时间的时间戳mysql> select unix_timestamp();+------------------+| unix_timestamp() |+------------------+| 1361586358 |+------------------+1 row in set (0.01 sec) mysql> select unix_timestamp(‘2013-01-01 10:10:10‘);+---------------------------------------+| unix_timestamp(‘2013-01-01 10:10:10‘...

UNIX环境高级编程笔记之线程【图】

本章涉及到线程的一些基本知识点,讨论了现有的创建线程和销毁线程的POSIX.1原语,此外,重点介绍了线程同步问题,讨论了三种基本的同步机制:互斥量、读写锁、条件变量。原文:http://www.cnblogs.com/bakari/p/5541954.html

POJ 1087 A Plug for UNIX 最大流【代码】

注意数据范围,因为插座有100个,电器需要的类型有100个, 转换器有100个(最多200个类型),所以节点是400个,一开始RE了很多发#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <string> #include <iostream> #include <map> #include <cstdlib> #include <list> #include <set> #include <queue> #include <stack>using namespace std;typedef long long LL; const in...

【Linux_Unix系统编程】Chapter8 用户和组

chapter8 用户和组8.1 密码文件 /etc/passwd 每行都包含7个字段,之间用冒号分割,如下所示: mtk:x:1000:100:Michael:/home/mtk:/bin/base 按顺序介绍着7个字段: 登录名: 经过加密的密码:长度为13个字符 用户ID: 组ID: 注释:该字段存放关于用户的描述性文字。 主目录:用户登录后所处的初始路径 登录shell:一旦用于登录,便交由该程序控制8.2 shadow密码文件: /etc/shadow8.3 组文件:/etc/group 对用户所属组信息的定义有...

Unix Shell_Oracle EBS基于主机文件Host开发详解(案例)【代码】

2014-06-20 BaoXinjian一、摘要Oracle 并发程式中Host Type的可执行程式,它的作用是用于调用Unix Shell去执行某些需求个人觉得Oracle EBS中引入Host去调用unix shell其弥补了很多PLSQL类型程式无法做的某些功能,以unix shell的语法结构直接对服务器进行操作写host并发程式时,需要较强的Bash语法知识,个人不做DBA,只了解一部分,所以就不具体介绍了,只说明一下Oracle EBS开发Unix Shell时需要注意的地方1. Host并发程式中必须...

Linux/UNIX环境下Oracle数据库多实例开机启动脚本(转)

操作系统平台:RHEL 5Shell环境:BashOracle:10g2功能描述:开机时自动切换到oracle用户下,启动oracle的多个实例。并记录数据库的启动情况到自定义的日志文件中。#!/bin/bashLOG_PATH=$HOME/oracle_initing.loglog() {if [ $# -lt 1 -a $# -gt 1 ];thenexit 5ficase "$@" insuccess) echo `date +%b" "%d" "%T`" "$PRO": Oracle instence \"$ORACLE_SID\" starting up succefully" >> $LOG_PATH;;failed) echo `date +...

APUE第一章 UNIX基础知识【图】

前语:本人是半路出家做程序员,实际上应付平时工作中的业务还可以,但是基础知识实在薄弱,当然也跟中国计算机教育有关系,平时跟同事聊天,实际上就算是科班出身,对于计算机本身的了解也知之甚少,因此在毕业两周年到来的时候,给自己确定了以后的技术学习方向,同时也决定了将基础部分补充起来,特来CSDN开这个专题,去学习程序员圣经般著作—《UNIX高级环境编程》,这本书也是被某个同事经常提起,书本比较厚,但是不能操之过...

UNIX网络编程读书笔记:基本TCP套接口编程【图】

编写一个完整的TCP客户和服务器程序所需要的基本套接口函数:1、socket函数(客户端、服务器端都必须调用)参数family指明协议族(family),该参数也往往被称为协议域(domain)。所以有的书上声明如下:而且对于socket函数第一个参数,在不同书籍上可能会看到不同前缀的取值常量列表,如下两图所示:AF_xxx与PF_xxx:AF_前缀表地址族,PF_前缀表示协议族。历史上曾有这样的想法:单个协议族可以支持多个地址族,PF_值用来创建套接口,...

如何在Linux/Unix上使用ssh-agent进行身份验证【代码】【图】

如何在Linux 和Unix 类系统(如 macOS 或 FreeBSD 桌面)上使用 ssh-agent 命令进行非交互式身份验证?我的私钥是用口令或密码保护的。所以我需要输入口令才能多次使用ssh私钥进行验证。我怎样才能让ssh只询问一次口令?你需要使用ssh-agent 命令。它将保存你用于ssh公钥认证的私钥。换句话说,ssh-agen会记住并暂时将口令存储在内存中。然后,只要你用私钥使用ssh命令,ssh-agent就会启动,为ssh会话提供密码口令。因此,省去了再...

unix virutal machine installation

1. vmplayerdownload: https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/7_02. virtualboxdownload: https://www.virtualbox.org/3. debian (unix os)net installation: https://www.debian.org/distrib/netinstdebian-8.1.0-amd64-netinst.isodebian-8.1.0-i386-netinst.iso原文:http://www.cnblogs.com/BugQiang/p/4719990.html

UNIX网络编程读书笔记:套接口地址结构【代码】【图】

前言大多数套接口函数都需要一个指向套接口地址结构的指针作为参数。每个协议族都定义它自己的套接口地址结构。这些结构的名字均以“sockaddr_”开头,并以对应每个协议族的唯一后缀结束。IPv4套接口地址结构IPv4套接口地址结构通常也称为”网际套接口地址结构“,它以”sockaddr_in“命名,定义在头文件<netinet/in.h>中。其POSIX定义如下:/* sockaddr_in */struct in_addr {in_addr_t s_addr; /* 23 bits IPv4 a...