unix
文章平均质量分 77
ken_scott
这个作者很懒,什么都没留下…
展开
-
【笔记】unix系统下,多个静态库链接到一个可执行程序后,执行时出现莫名奇妙的问题
前提说明:web_transmit_service是一个传输管理程序,内嵌rayvision引擎和aspera引擎,其中引擎是静态库,两个引擎封装的接口特别相似出现问题:vector异常,push_back()执行5次,但size()却是3,而且遍历出的结果与push进去的内容是不一样的,另外,只链接一个引擎时就是正常的,同时链接两个引擎才会执行异常,而且,window原创 2016-11-15 15:31:15 · 984 阅读 · 0 评论 -
一个简单的文件共享工程 -- TMServer
TMServer文件夹中文件:TMServer.h:#ifndef __TCP_MULTIPLEXING_SERVER_H__#define __TCP_MULTIPLEXING_SERVER_H__#include #include #include using std::vector;#include "../TConnection/TConnection.h"#in原创 2012-06-03 13:02:34 · 1105 阅读 · 0 评论 -
一个简单的文件共享工程 -- 总结
ByteStream用在这里是不必要的,htons(),ntohs()已经足够了,还有个教训:函数命名不要用系统相同,虽然我现在还是这么做的,以后尽量避免吧。文件共享???远程登录似乎更贴切些。命令还可以再加,也可以再改成多进程或多线程什么的,不过,没必要了。还有,makefile写得太难看了,没学到精髓。原创 2012-06-03 13:30:40 · 787 阅读 · 0 评论 -
一个简单的文件共享工程 -- FileServer
FileServer文件夹中文件:FileServer.h:#ifndef __FILE_SERVER_H__#define __FILE_SERVER_H__#include "../TMServer/TMServer.h"class FileServer : public TMServer{public: FileServer(const char * host,原创 2012-06-03 13:13:55 · 878 阅读 · 0 评论 -
一个简单的文件共享工程 -- TMClient
TMClient文件夹中文件:TMClient.h:#ifndef __TCP_MULTIPLEXING_CLIENT_H__#define __TCP_MULTIPLEXING_CLIENT_H__#include "../Head/Uncopy.h"#include "../TConnection/TConnection.h"class TMClient : public原创 2012-06-03 13:05:39 · 870 阅读 · 0 评论 -
UNP函数笔记十七: 客户/服务器程序设计范式
第三十章 客户/服务器程序设计范式:示例:#include "err_exit.h"#include /* * Allocate an array of "nchildren" longs in shared memory that can * be used as a counter by each child of how many clients it ser原创 2012-04-23 09:08:07 · 877 阅读 · 0 评论 -
UNP函数笔记十六: 线程
第二十六章 线程:#include int pthread_create(pthread_t * tid, const pthread_attr_t * attr, void * (*func)(void *), void * arg); success return 0, error return原创 2012-04-22 14:35:16 · 818 阅读 · 0 评论 -
UNP函数笔记十五: 信号驱动式I/O
第二十五章 信号驱动式I/O:示例:#include #include #include #include "err_exit.h"#include "my_signal.h"static int sockfd;#define QSIZE 8 /* size of input queue */#define MAXDG 409原创 2012-04-21 19:32:11 · 655 阅读 · 0 评论 -
UNP函数笔记十三: 非阻塞式I/O
第十六章 非阻塞式I/O:示例:#include #include #include #include #include "err_exit.h"#define MAXLINE 4096char * gf_time(void){ struct timeval tv; time_t t; static char原创 2012-04-20 20:18:12 · 780 阅读 · 0 评论 -
UNP函数笔记十四: 带外数据
第二十四章 带外数据:#include int sockatmark(int sockfd); have oob mark return 1, have not oob mark return 0, error return -1示例:#include int sockatmark(int fd){ int flag; if (io原创 2012-04-21 19:27:43 · 675 阅读 · 0 评论 -
UNP函数笔记十二: Unix域协议
第十五章 Unix域协议:#include struct sockaddr_un { sa_family_t sun_family; /* AF_LOCAL */ char sun_path[104]; /* null-teminated pathname */};sun_path[0] means any-address#include原创 2012-04-19 22:53:53 · 853 阅读 · 0 评论 -
UNP函数笔记十一: 高级I/O函数
第十四章 高级I/O函数:#include ssize_t recv(int sockfd, void * buff, size_t nbytes, int flags); success return recv-byte-count, error return -1ssize_t send(int sockfd, const void * buff, size_t nbytes原创 2012-04-18 21:20:32 · 1166 阅读 · 2 评论 -
一个简单的文件共享工程 -- FileClient
FileClient文件夹中文件:FileClient.h:#ifndef __FILE_CLIENT_H__#define __FILE_CLIENT_H__#include #include using std::map;using std::string;#include "../TMClient/TMClient.h"class FileClient : pub原创 2012-06-03 13:18:40 · 1889 阅读 · 0 评论 -
一个简单的文件共享工程 -- 功能概述
服务器管理一个目录,远程客户端可以对这个目录进行几个简单的命令(ls,cd,mkdir,touch,rm,download,upload),客户端不可以操作共享目录以外的东西。服务器用的是多路复用实现的,没有用多线程,多进程;所以,如果一个客户端在上传或下载大数据量的文件时,就不能对别的客户端及时响应。交互协议如下:ls: client>: >> ls原创 2012-06-03 12:51:43 · 736 阅读 · 0 评论 -
一个简单的文件共享工程 -- Head
Head文件夹中文件:Command.h:#ifndef __COMMAND_H__#define __COMMAND_H__#include enum{ FILE_MODE = (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH), DIR_MODE = (FILE_MODE | S_IXUSR | S_IXGRP | S_IX原创 2012-06-03 12:55:55 · 633 阅读 · 0 评论 -
【笔记】Qt程序在Windows、OS X、CentOS、Ubuntu下的打包处理
主程序名 web_transmit_adapterWindows:打包主目录windows:包含子目录web_transmit_adapter和两个打包文件web_transmit_adapter.nsi、和packing.bat而在web_transmit_adapter子目录中包含了Qt程序web_transmit_adapter.exe以及一些依赖的第三方库文件等发布原创 2016-08-28 17:52:33 · 3230 阅读 · 0 评论 -
APUE函数笔记八: 信号
第十章 信号:0 < signo < NSIG#include void (*signal(int signo, void(*func)(int)))(int); if error return SIG_ERR, else return previous handler#include int kill(pid_t pid, int signo); pid:原创 2012-03-28 21:01:09 · 621 阅读 · 0 评论 -
linux下获取CPUID,MAC地址,硬盘序列号,主板序列号
以下代码的思想都参考了他人的思想,因为参考的人的博客比较多,我也不记得是哪些了,故此就不列出了但是代码都是本人亲自编写的,并通过测试,现在分享代码,希望可以方便自己和他人获取CPUID:#include #include #include #include #include #include static bool get_cpu_id_by_asm(std::s原创 2013-11-25 13:09:43 · 13851 阅读 · 8 评论 -
一个测试引发的思考
有赖机缘,写代码展示null指针调用类的成员函数、静态成员函数: (想在一份代码中完成)考虑到会有SIGSGEV(无效内存引用),所以要有异常\错误处理方法。1. 首先想到C++的try & catch:#include #include #include using namespace std;class A{public: A(原创 2012-09-14 22:45:58 · 754 阅读 · 0 评论 -
rudp
lock.h:#ifndef __LOCK_H__#define __LOCK_H__#include class MutexLocker{public: MutexLocker(); ~MutexLocker(); void lock(); void unlock();private: pthread_mutex_t m_lock原创 2012-07-24 14:06:27 · 10087 阅读 · 4 评论 -
epoll实践
代码做的是回射服务客户端:#include #include #include #include #include #include const int BUFFSIZ = 4096;int connect(const char * host, const char * serv){ int connfd; int原创 2012-06-08 13:48:57 · 787 阅读 · 2 评论 -
一个简单的文件共享工程 -- TConnection
TConnection文件夹中文件:TConnection.h:#ifndef __TCP_CONNECTION_H__#define __TCP_CONNECTION_H__class TConnection{public: static bool send(int sockfd, const char * data, int n); static bool rec原创 2012-06-03 12:59:46 · 682 阅读 · 0 评论 -
APUE函数笔记十一: 守护进程
第十三章 守护进程:#include void openlog(const char * ident, int option, int facility);void syslog(int priority, const char * format, ...);void closelog(void);int setlogmask(int maskpri); return p原创 2012-03-31 16:05:42 · 793 阅读 · 0 评论 -
UNP函数笔记九: IPv4与IPv6的互操作性
第十二章 IPv4与IPv6的互操作性:#include int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr * aptr);int IN6_IS_ADDR_LOOPBACK(const struct in6_addr * aptr);int IN6_IS_ADDR_MULTICAST(const struct in6_addr * ap原创 2012-04-17 16:32:52 · 1508 阅读 · 0 评论 -
APUE函数笔记十二: 高级IO
第十四章 高级IO:#include int fcntl(int filedes, int cmd, ... /* struct flock * flockptr */); if error return -1 cmd: F_GETLK, F_SETLK, F_SETLKW struct flock { short l_type; /*原创 2012-04-02 14:10:32 · 676 阅读 · 0 评论 -
简单的加解密工具
目的: 一、部分私人文件不想让别人看到, Linux下又不能用Windows上的加解密工具 (也许有现成的东西, 只是我自己不知道吧, 不过也懒得搜了) 二、最近再看APUE, 写点代码当实践与复习 (发现又开始忘了)算法: 文件字节与密钥顺序进行异或功能: 一、对指定文件加密或解密 二、对指原创 2012-03-26 05:01:57 · 719 阅读 · 0 评论 -
APUE函数笔记十: 线程控制
第十二章 线程控制:#include int pthread_attr_init(pthread_attr_t * attr); if success return 0, else return error-no, will not modify errnoint pthread_attr_destroy(pthread_attr_t * attr); if succes原创 2012-03-31 10:17:24 · 581 阅读 · 0 评论 -
APUE函数笔记九: 线程
第十一章 线程:#include int pthread_equal(pthread_t tid1, pthread_t tid2); if equal return non-zero, else return 0#include pthread_t pthread_self(void);#include int pthread_create(pthread_t * r原创 2012-03-30 00:49:05 · 547 阅读 · 0 评论 -
APUE函数笔记七: 进程关系
第九章 进程关系:#include pid_t getpgrp(void); get pgid (>0)#include pid_t getpgid(pid_t pid); getpgid(0) same as getpgid(getpid()) same as getpgrp() if error return -1#include int set原创 2012-03-25 17:57:02 · 638 阅读 · 0 评论 -
APUE函数笔记四: 系统数据文件和信息
第六章 系统数据文件和信息:#include struct passwd * getpwuid(uid_t uid); ret is a static valuablestruct passwd * getpwnam(const char * name); ret is a static valuablestruct passwd * getpwent(void);原创 2012-03-24 15:00:02 · 547 阅读 · 0 评论 -
APUE函数笔记五: 进程环境
第七章 进程环境:#include void exit(int status);void _Exit(int status);#include void _exit(int status);#include int atexit(void (*func)(void)); ret is 0 means success, log-func-total-counts <=原创 2012-03-24 15:09:00 · 634 阅读 · 0 评论 -
APUE函数笔记一: 文件IO
第三章 文件IO:STDIN_FILENO, STDOUT_FILENO, STDERR_FILENOfiledes -> [0, OPEN_MAX], OPEN_MAX->63#include int open(const char * pathname, int oflag, ... /* mode_t mode */ ); oflag: O_RD原创 2012-03-20 19:46:20 · 661 阅读 · 0 评论 -
APUE函数笔记六: 进程控制
第八章 进程控制:#include pid_t getpid(void);pid_t getppid(void);uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);#include pid_t fork(void); ret is -1 means error原创 2012-03-24 15:19:02 · 592 阅读 · 0 评论 -
APUE函数笔记三: 标准IO库
第五章 标准IO库:stdin, stdout, stderr#include #include int fwide(FILE * fp, int mode); we need clear error before call it, and check with ferror after call it#include void setbuf(FILE * re原创 2012-03-24 14:48:52 · 608 阅读 · 0 评论 -
APUE函数笔记二: 文件与目录
第四章 文件与目录:#include int stat(const char * restrict pathname, struct stat * restrict buf);int fstat(int filedes, struct stat * buf);int lstat(const char * restrict pathname, struct stat * restri原创 2012-03-24 14:29:27 · 620 阅读 · 0 评论 -
APUE函数笔记十三: 进程间通信
第十五章 进程间通信:#include int pipe(int filedes[2]); if success return 0, else error return -1#include FILE * popen(const char * cmdstring, const char * type);int pclose(FILE * fp); if succes原创 2012-04-05 10:05:30 · 570 阅读 · 0 评论 -
APUE函数笔记十四: 网络IPC:套接字
第十六章: 网络IPC:套接字:#include int socket(int domain, int type, int protocol); domain: AF_INET, AF_INET6, AF_UNIX, AF_UNSPEC type: SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET, SOCK_STRE原创 2012-04-07 12:37:14 · 575 阅读 · 0 评论 -
APUE函数笔记十五: 高级进程间通信(部分)
第十七章 高级进程间通信(部分):#include int fattach(int filedes, const char * path); if success return 0, else error return -1#include int fdetach(const char * path); if success return 0, else error原创 2012-04-07 16:16:14 · 680 阅读 · 0 评论 -
UNP函数笔记十: 守护进程和inetd超级服务器
第十三章 守护进程和inetd超级服务器:#include void syslog(int priority, const char * format, ...);#include void openlog(const char * ident, int option, int facility);void closelog(void); option:原创 2012-04-17 16:36:51 · 716 阅读 · 0 评论 -
UNP函数笔记八: 名字与地址转换
第十一章 名字与地址转换:#include struct hostnet * gethostbyname(const char * hostname); error return NULL and set h_errno struct hostnet { char * h_name; /* official (canonical) name原创 2012-04-16 22:49:08 · 875 阅读 · 0 评论