![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux系统编程
0不等于1
这个作者很懒,什么都没留下…
展开
-
Linux线程
Linux线程线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。由于每个线程占用的cpu时间是由系统分配的,因此可以把线程看成操作系统分配cpu时间的基本单位。在用户看来,多个线程是同时执行的,但从操作系统调度上看,各个线程是交替执行的。这是针对单cpu单核情况,在多cpu多核的主机上,多个线程是可以同时运行的。线程对进程优点1.每个进程有自己独立的地址空间,而多线程同一翻译 2015-11-02 14:21:26 · 335 阅读 · 0 评论 -
Linux互斥锁
Linux互斥锁互斥锁通过锁机制来实现线程间的同步,在同一时刻它通常只允许一个线程执行一个关键部分的代码。一、函数pthread_mutex_init函数:初始化一个互斥锁pthread_mutex_destroy函数:注销一个互斥锁pthread_mutex_lock函数:加锁,如果不成功,阻塞等待pthread_mutex_unlock函数:解锁pthread_mu翻译 2015-11-02 14:30:15 · 473 阅读 · 0 评论 -
Linux异步信号
Linux异步信号1.int pthread_kill(pthread_t threadid, intsigno);向特定的线程发送信号signo2.int pthread_sigmask(int how, const sigset_t*newmask, sigset_t *oldmask);设置线程的信号屏蔽码3.int sigwait(const sigset_t *set翻译 2015-11-02 17:01:27 · 397 阅读 · 0 评论 -
程序运行找不到库文件
程序运行找不到库文件生成库文件命令:G++ xxx.cpp –fPIC –shared –o libxxx.so查看程序库连接Ldd main执行找不到库文件修改/etc/ld.so.conf/sbin/ldconfig生效翻译 2015-11-20 09:01:46 · 369 阅读 · 0 评论 -
socket通讯
Socket通讯一、函数socket:创建一个socketbind:绑定IP地址和端口号到docketconnect:与服务器建立连接listen:设置服务器能处理的最大连接要求accept:等待来自客户端的socket连接请求send:发送数据recv:接收数据二、TCP1.基于TCP服务器1.创建一个socket,函数socket()2.翻译 2016-02-22 23:06:46 · 246 阅读 · 0 评论 -
linux检测文件夹是否存在
//检测文件夹是否存在 DIR* dir; dir = opendir(LOG_FILE); if(dir == NULL) { char msg[64]; sprintf(msg, "$Boot Info:%s file do not exists!\n", LOG_FILE); DebugMsg(ms翻译 2016-05-16 10:46:59 · 1398 阅读 · 0 评论 -
linux串口
串口一.系统查看串口1.查看串口个数dmesg | grep ttyS*2.查看串口驱动的信息cat /proc/tty/driver/serial3.查看串口的波特率stty -a -F /dev/ttySAC24.查看串口数据cat /dev/tty*二.串口操作函数1.打开串口bool CPosition::OpenComPort(){转载 2016-04-22 09:04:24 · 729 阅读 · 0 评论 -
问题:sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
问题:sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set解决办法:ubuntuCtrl+Alt+F1进入窗口模式sudo -schown root:root /usr/bin/sudochmod 4755 /usr/bin/sudoreboot原创 2016-07-07 16:14:30 · 16659 阅读 · 0 评论 -
linux条件变量
Linux条件变量条件变量条件变量是利用线程间共享是全局变量进行同步的一种机制。条件变量宏观上类似if语句,符合条件就能执行某段程序,否则只能等待条件成立。一、函数pthread_cond_init函数:初始化条件变量pthread_cond_wait函数:基于条件变量阻塞,无条件等待pthread_cond_timedwait函数:阻塞直到指定事件发生,计时等待pth翻译 2015-11-02 15:20:41 · 279 阅读 · 0 评论 -
获取目录信息opendir/readdir/closedir
获取目录信息1.DIR *opendir(const char *name)opendir用来打开参数name指定的目录,并返回DIR*形态的目录流返回值:成功:返回DIR*形态的目录流失败:NULL 2.struct dirent *readdir(DIR *dir)用来从参数dir所指向的目录中读取出目录项信息,返回一个struct dirent结构的指针s翻译 2015-10-28 14:17:03 · 520 阅读 · 0 评论 -
linux文件的输入输出
文件的输入输出Linux函数:creat、open、close、read、write和lseek等C语言:fopen、fclose、fread、fwrite、fseek等在编写跨平台程序时,最好使用C语言的标准库函数以方便移植,因为creat、open等系统函数使用文件描述符来标识文件,而文件描述符是UNIX/Linux特有的,不方便移植。 1. open函数打开创建翻译 2015-10-14 14:56:30 · 331 阅读 · 0 评论 -
ioctl函数
Ioctl函数通常用来控制设备,控制特殊设备文件的属性Int ioctl(int fd, int request, …)Fd:已经打开的文件描述符第三个参数一般为char *argp,它随第二个参数request的不同而不同。参数request决定了参数argp是向ioctl传递数据还是从ioctl获取数据。Ioctl获取网络设备的信息#include #inclu翻译 2015-10-16 17:15:47 · 309 阅读 · 0 评论 -
设置文件的属性-chmod/chown/truncate/utime/umask
设置文件属性1.chmod/fchmod用于修改文件的存取权限2.chown/fchown/lchown用于修改文件的用户id和组idint chown(const char *path, uid_t owner,gid_t group)int fchown(int fd, uid_t owner, gid_t group)int lchown(const char *翻译 2015-10-20 16:02:31 · 410 阅读 · 0 评论 -
获取文件属性-fstat/stat
获取文件属性Int stat(const char *filename, structstat*buf)Int fstat(int filedes, struct stat *buf)Int lstat(const char *filename, struct stat*buf)返回值成功:0错误:-1Stat:用于获取由参数file_name指定的文件名的状态信息,保翻译 2015-10-20 15:40:19 · 1159 阅读 · 0 评论 -
目录函数mkdir/rmdir/getcwd/chdir
目录的创建int mkdir(const char *pathname, mode_t mode)创建一个新的空目录,空目录中会自动创建.和..目录项。所创建的目录的存取许可权由mode指定返回值:成功:0错误:-1 目录的删除int rmdir(const char *pathname)rmdir只能删除由参数pathname指定的空目录返回值;成功:翻译 2015-10-21 17:38:30 · 562 阅读 · 0 评论 -
linux信号
Linux信号1.linux信号的种类kill –l 2.signal函数设置进程在接收到信号时的动作typedef void (*sighandler_t)(int)sighandler_t signal(int signum, sighandler_thandler);signal会根据参数signum指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会翻译 2015-11-06 11:39:08 · 239 阅读 · 0 评论 -
strchr/strrchr
Strchr/strrchrChar *strchr(char *str, char c);返回首次出现c的位置的指针,成功则返回要查找字符第一次出现的位置,失败返回NULL。Char *strrchr(const char *str, char c);查找字符c在字符串str中末次出现的位置,并返回这个位置,如果未找到指定字符,返回NULL。代码:将字符串path (/c翻译 2015-10-22 09:29:43 · 394 阅读 · 0 评论 -
文件的移动删除rename/remove
文件的移动用来修改文件名或文件的位置int rename(const char *oldpath, const char*newpath)rename会将参数oldpath所指向的文件名改为参数newpath所指向是文件名,若newpath所指向的文件已存在,则源文件会被删除。返回值;成功:0错误:-1程序:my_mv.c 文件的删除文件的删除可以使用unl翻译 2015-10-21 16:05:03 · 1995 阅读 · 0 评论 -
Chmod命令
Chmod命令函数:Int chmod(const char *path, mode_t mode);Int fchmod(int fildes, mode_t mode);Chmod/fchmod的区别在于chmod以文件名作为第一个参数,fchmod以文件描述符作为第一个参数。参数mode的几种组合:参数mode数值字符常量值对应的八进制翻译 2015-10-10 09:15:25 · 451 阅读 · 0 评论 -
Fcntl函数
Fcntl函数函数用来对以打开的文件描述符进行各种控制操作以改变已打开文件的各种属性Int fcntl(int fd, int cmd);Int fcntl(int fd, int cmd, long arg);Int fcntl(int fd, int cmd, struct flock*lock);Cmd:F_DUPFD:此时,fcntl的功能与dup一样,可以复制由f翻译 2015-10-16 14:46:37 · 838 阅读 · 0 评论