
Linux C
文章平均质量分 66
Linux 应用层基本编程相关知识
chenpuo
这个作者很懒,什么都没留下…
展开
-
__attribute__((constructor))用法解析
今天在看ProtocolKit的源码,看到了这么一行代码.__attribute__((constructor)) static void _pk_extension_inject_entry(void) {主要造成疑惑的是 __attribute__((constructor)),以前看过关于__attribute__这个关键字的,大概还记得就是可以修饰类型,函数什么的.类似一个编译标记.但是具体用法忘记了.attributeGNU C 的一大特色就是__attribute__ 机制。转载 2022-03-24 20:47:04 · 10344 阅读 · 0 评论 -
网络编程-sockaddr和sockaddr_in的区别
sockaddr和sockaddr_in的区别_tao546377318的博客-优快云博客套接字编程需要指定套接字的地址作为参数,不同的协议族有不同的地址结构定义方式。这些地址结构通常以sockeaddr_开头,每一个协议族有一个唯一的后缀,例如对于以太网,其结构名称为sockaddr_in.1.通用套接字数据结构 通用的套接字地址类型的定义如下,它可以在不同协议族之间进行强制转换。include <netinet/in.h> struct sockad...转载 2022-02-20 21:58:25 · 182 阅读 · 0 评论 -
printf中的format格式 %zd
转载自printf中的format格式 %zd_钟离睿水-优快云博客_zd是什么意思转载 2022-02-09 21:39:01 · 1051 阅读 · 0 评论 -
ICMP协议编程实践:实现ping命令(C语言)
转自 https://network.fasionchan.com/zh_CN/latest/practices/ping-by-icmp-c.html众所周知,ping命令通过ICMP协议探测目标IP并计算往返时间。 本文使用C语言开发一个ping命令, 以演示如何通过套接字发送和接收ICMP协议报文。注解程序源码可在本文末尾复制,或者在Github上下载:ping.c。报文封装ICMP报文承载在IP报文之上,头部结构非常...转载 2021-06-26 20:20:49 · 5747 阅读 · 1 评论 -
popen 与system函数笔记
文章大部分为摘抄,有些没有标明出处,请谅解。通过popen查看selinux是否打开:#include #include int main () { char cmd[64] = {0}; char buf[64] = {0}; FILE *fd; sprintf(cmd,"getenforce\n"); fd = popen(cmd, "r"原创 2015-09-10 14:28:45 · 1126 阅读 · 0 评论 -
linux编程获取本机IP地址 + socket相关系统调用的调用流程
转自 https://blog.youkuaiyun.com/bailyzheng/article/details/7489656ifaddrs结构体定义如下:C代码structifaddrs { structifaddrs*ifa_next;/*Nextiteminlist*/ char...转载 2019-06-17 21:48:52 · 3451 阅读 · 0 评论 -
Linux进程或线程绑定到CPU+修改优先级
转载自 https://www.cnblogs.com/swey/p/4469722.html为了让程序拥有更好的性能,有时候需要将进程或线程绑定到特定的CPU,这样可以减少调度的开销和保护关键进程或线程。进程绑定到CPULinux提供一个接口,可以将进程绑定到特定的CPU:#define _GNU_SOURCE //这行必须在下面这include之前,否则C...转载 2018-09-06 17:50:07 · 4001 阅读 · 0 评论 -
Linux文件操作的常用系统函数说明
转载自 https://www.cnblogs.com/yongfengnice/p/6790705.html1. open打开文件 (man 2 open 查看)int open(const char *pathname, int flags); //pathname文件名(路径);flags打开模式,有O_RDONLY, O_WRONLY, O_RDWR int ope...转载 2018-07-31 21:35:13 · 379 阅读 · 0 评论 -
linux中多线程操作,互斥锁,条件锁
转自 https://blog.youkuaiyun.com/wangqing_12345/article/details/68490842 背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问...转载 2018-07-31 21:23:29 · 304 阅读 · 0 评论 -
C++基础
1. 不做特别说明,类的数据成员和成员函数都被认为是private如:class lamp{ int number; void display();public: void lower();};其中 ,number display()为私有,lower 为公有2. private, public, protected 访问标号的访问范围。private:只能由1.该类...原创 2018-07-04 17:05:56 · 221 阅读 · 0 评论 -
Linux C 线程
1. 没有pthread_detach导致内存泄漏#include <pthread.h>#include <stdio.h>#include <unistd.h>#include <sys/time.h>void doprint(void *arg){ printf("arg=%d\n",*(int *)arg); pthread...原创 2018-06-28 17:54:12 · 848 阅读 · 0 评论 -
基本算法demo
1 一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。例:n=1237则输出为:1237,2474,4948,9896,9896,4948,2474,1237还得用变量和循环。。。。void main (){ unsigned int n = 234; int i = 0; for(i=0;(1<...原创 2018-06-27 01:01:36 · 295 阅读 · 0 评论 -
C语言基础
1. typedef 和struct 用法#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct Node{ int a; struct Node *next;}Node,*Node_p;typedef struct Node Nod;void ma...原创 2018-06-26 22:03:53 · 270 阅读 · 0 评论 -
linux mmap 内存映射 mmap() vs read()/write()/lseek()
转自 https://blog.youkuaiyun.com/onlyonename/article/details/9570883通过strace统计系统调用的时候,经常可以看到mmap()与mmap2()。系统调用mmap()可以将某文件映射至内存(进程空间),如此可以把对文件的操作转为对内存的操作,以此避免更多的lseek()与read()、write()操作,这点对于大文件或者频繁访问的文件而言尤其...转载 2018-06-11 22:30:27 · 1293 阅读 · 0 评论 -
C语言 AF_UNIX tcp/udp socket实例
https://blog.youkuaiyun.com/shanzhizi/article/details/16882087 ========================tcp 方式============================服务器端: //s_unix.c #include <stdio.h> #include <sys/ty...转载 2018-09-13 16:42:30 · 2743 阅读 · 0 评论 -
C 语言 AF_INET udp socket 使用
https://blog.youkuaiyun.com/qq_29344757/article/details/71616748 udp是一个基于无连接的通讯协议,通讯基本模型如下:可以看出,不论是在客户端还是服务器,connect()似乎用不上,bind()在客户端也用不上,但是事实并非如此。1. udp客户端直接收发数据udp客户端建立了socket后可以直接调用sendto()函数向...转载 2018-09-13 16:40:19 · 1882 阅读 · 0 评论 -
epoll监控 AF_INET 的tcp socket
转载自http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html 1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,...转载 2018-11-27 10:54:56 · 405 阅读 · 0 评论 -
scanf fgets gets qsort
1. scanf用scanf获取一行字符串包括空格的以及C语言函数其内容为#include<stdio.h>int main(){char str[1024];scanf("%[^\n]", &str);return 0;}说明:在scanf函数中, 可以使用%c来读取一个字符, 使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽...原创 2020-02-12 13:16:07 · 211 阅读 · 0 评论