
Linux笔记
csdn_gddf102384398
这个作者很懒,什么都没留下…
展开
-
CentOS7搭建Qt5.14.2开发环境遇到的坑和解决方法
1、首先Windows下载.run文件,移动到Linux上后,chmod +x ,root执行,报错“No marker found, stopped after 1.00 MiB”,解决:在Linux下浏览器下载.run安装文件,然后执行;特别注意,Qt安装时如果选择了Qt Desktop gcc选项,这并不是指会额外安装gcc编译器。2、安装时最好断网,否则会提示输入注册账号,麻烦;3、新建工程编译报错,提示需要C++11支持,这是因为系统的gcc编译器版本太低,参考如下链接解决:cento原创 2022-05-03 12:53:57 · 1721 阅读 · 0 评论 -
linux gcc 编译时头文件和库文件搜索路径
添加链接描述转载 2020-10-15 18:39:27 · 159 阅读 · 0 评论 -
Ubuntu开机自动运行指定程序
比如ubuntu的当前登录用户是user1,现在想要在user1登录系统后自动运行test.sh,可在/home/user1/.profile文件末尾追加如下命令:cd test.sh所在目录./test.sh注意:test.sh执行结果必须要么是后台进程,要么是马上能完成的程序,否则,重启系统并使用GUI登录到user1将会导致无法进入桌面系统,解决办法是按Ctrl+Alt+F2 (也可能是其他的功能键,如F1)进入到字符界面下,登录到user1然后重新编辑.profile文件。...原创 2020-07-02 11:58:46 · 549 阅读 · 0 评论 -
Linux编译安装libcurl并使用它编写ftp上传的C程序
下载curl-7.70.0.zip并解压在curl-7.70.0的上一级目录编写一个curl_build.sh的文件,内容为:cd curl-7.70.0./configure --prefix=/curl/ --disable-shared --enable-static --without-libidn --without-ssl --without-librtmp --without-gnutls --without-nss --without-libssh2 --without-zlib --原创 2020-05-17 12:27:05 · 337 阅读 · 0 评论 -
Linux设备划分
设备包括字符设备(只能顺序访问)、块设备(可以随机访问)、网络设备,前两种都被操作系统视为特殊文件了(即设备文件),可以使用文件操作相关的系统调用来操作它们,比如通过open系统调用传入文件名来打开一个设备文件;但是网络设备有专门的套接字系统调用来操作,所以将网络设备单独划分出来。...原创 2020-05-10 18:57:28 · 225 阅读 · 0 评论 -
xftp和Linux查看某端口被哪个进程占用的命令
XFtp使用sftp,sftp的默认端口是22,实际sftp使用的是sshd进程的端口(22号端口)。Linux使用如下命令查看某端口被哪个进程占用:#netstat -lnp | grep 22原创 2020-05-08 15:34:36 · 995 阅读 · 0 评论 -
linux QT初次运行helloworld出现error: cannot find -lGL解决方法
超级用户权限下执行:ln -s /usr/lib64/libGL.so.1 /usr/lib/libGL.so原创 2020-03-10 10:41:21 · 163 阅读 · 0 评论 -
fork调用后,子进程的执行位置
fork通过复制当前进程来创建一个子进程,子进程和父进程具有不同的进程地址空间。由于子进程是父进程的复制品,所以子进程与父进程具有相同的程序计数器(PC),因而当父进程执行fork后,子进程也就直接执行fork语句之后的代码了。...原创 2019-12-26 16:05:45 · 382 阅读 · 0 评论 -
Linux下C语言嵌入AT&T汇编
main.c#include <stdio.h>int a;int main(){ asm( "pusha #this is a note\n" "movl $1,a\n" //a is a memory address "movl a,%eax\n" "add $2,%eax\n" "movl %eax,a\n" "popa" ); printf...原创 2019-09-29 19:40:02 · 327 阅读 · 0 评论 -
linux下AT&T汇编之helloworld
hello.s.section .rodata str: .ascii "Hello,world!\n".section .text.globl _start_start: movl $4,%eax movl $1,%ebx movl $str,%ecx movl $13,%edx int $0x80 movl $1,%eax movl $0,%ebx int ...原创 2019-09-29 19:01:38 · 259 阅读 · 0 评论 -
进程内存布局
x86下Linux典型的进程内存布局C语言中,char* p=“hello”;这里的字符串常量是保存在.rodata段中的,并不是所有的字面值常量都是保存在.rodata中,比如局部变量int a=123; 这里123直接存在于指令中。...原创 2019-09-25 10:14:59 · 126 阅读 · 0 评论 -
系统调用的实现
转载:https://www.cnblogs.com/Five100Miles/p/8878080.html转载 2019-09-05 09:43:45 · 153 阅读 · 0 评论 -
Linux vim笔记和makefile笔记
最终的目标文件必须写在第一行原创 2019-06-01 20:35:16 · 173 阅读 · 0 评论 -
Linux静态库与动态库
一、静态库Linux下的静态库文件名必须以lib开头,后缀名必须是.a,比如:libmytest.a现在假如main.c文件中使用到了libmytest.a中的例程,假如libmytest.a与main.c在同一目录,则编译main.c的方法为:gcc main.c -o main -L . -l mytest其中,-L选项指定库文件的路径,.表示在当前目录;-l选项指定库文件名,特别注意...原创 2019-04-07 09:51:41 · 256 阅读 · 0 评论 -
I/O的理解
当应用层发起一个读请求时,比如从网卡读数据:recv(s,buf,len,0);这个len仅仅代表buf缓冲区的长度,并不表示此次必须要读到len个字节才返回。当发起recv调用时,recv内部将检查内核缓冲区中是否有数据,如果有,封闭内核缓冲区,然后将内核缓冲区中的数据拷贝至用户缓冲区(即buf),然后离开临界区,以便内核继续向内核缓冲区追加数据,或让其它读函数进入临界区读取数据,然后函数返...原创 2019-04-03 14:59:47 · 495 阅读 · 0 评论 -
Linux使用信号量解决线程互斥问题(卖票程序)
/*compile:g++ -D_REENTRANT -lpthread xx.cpp*/#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <semaphore.h>int ticket = 20;sem_t mutex;void* thre...原创 2019-03-28 19:47:17 · 588 阅读 · 0 评论 -
为什么说Linux不存在真正意义上的线程?
个人理解:Linux不存在真正意义上的线程,是因为Linux中线程调度是由创建线程的进程进行管理的,这点有别于Windows,Windows的CreateThread确实创建了线程,Windows中由操作系统负责线程的调度(而不是创建线程的进程进行调度)。...原创 2019-03-28 16:59:54 · 1372 阅读 · 1 评论 -
vim编辑C/C++自动换行并显示行号
在当前用户的家目录下,编写一个名为“.vimrc”的隐藏文件,其内容为:set autoindentset cindentset shiftwidth=4set tabstop=4set nu原创 2019-02-22 22:11:41 · 407 阅读 · 0 评论 -
Linux笔记
open函数的最后一个参数表示读写执行的权限,可以用0755这样的八进制数表示。原创 2018-10-17 14:20:31 · 163 阅读 · 0 评论