博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工作中遇到的几个函数....
阅读量:5946 次
发布时间:2019-06-19

本文共 1818 字,大约阅读时间需要 6 分钟。

ftell  函数,      运用实例:ftell(fp) >= size

long ftell(FILE *stream);

The ftell() function obtains the current value of the file position

indicator for the stream pointed to by stream.

 

unlink 函数:   应用实例:unlink(bakfile)

unlink - call the unlink function to remove the specified file  

unlink FILE

unlink OPTION      --------这里是断开备份文件

strstr 函数: 应用实例:    if(strstr(argv[i],"nofork"

返回子串首次出现的地址,第二个参数为子串,

#include <string.h>

char *strstr(const char *haystack, const char *needle);

The strstr() function finds the first occurrence of the substring nee-

dle in the string haystack. The terminating '\0' characters are not
compared.

 

 setpgid  函数             setpgid( 0 , 0 ) == -1

 设置父进程的实际组id       

#include <unistd.h>

int setpgid(pid_t pid, pid_t pgid);

setpgid() sets the PGID of the process specified by pid to pgid. Ifpid is zero, then the process ID of the calling process is used. If pgid is zero,

then the PGID of the process specified by pid is made the same as its process ID. If setpgid() is used to move a process from

one process group to another (as is done by some shells when creating pipelines), both process groups must be part of the same session (see

setsid(2) and credentials(7)). In this case, the pgid specifies an existing process group to be joined and the session ID of that group must match the session ID of the joining process.

 

 

syscall  函数,应用实例:pid_t m_tid_thread = syscall(__NR_gettid);

  syscall() 执行一个系统调用,根据指定的参数number和所有系统调用的汇编语言接口来确定调用哪个系统调用。

       系统调用所使用的符号常量可以在头文件里面找到。

Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即
不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与主进程(启动线程的进程)共享一些资源而已,比如代码段,数据段等。
有时候我们可能需要知道线程的真实pid。比如进程P1要向另外一个进程P2中的某个线程发送信号时,既不能使用P2的pid,更不能使用线程的pthread id,而只能使用该线程的真实pid,称为tid。
有一个函数gettid()可以得到tid,但glibc并没有实现该函数,只能通过Linux的系统调用syscall来获取。

 

转载地址:http://czbxx.baihongyu.com/

你可能感兴趣的文章
使用servletAPI三种方式简单示例
查看>>
单片机不同晶振怎么计算延迟时间?
查看>>
视频会议十大开源项目排行
查看>>
SQL Server Management Studio 简单使用说明
查看>>
【前端】javascript判断undefined、null、NaN;字符串包含等
查看>>
玩转iOS开发 - 数据缓存
查看>>
李洪强-C语言3-数组
查看>>
C# 6.0的字典(Dictionary)的语法
查看>>
使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图...
查看>>
三级联动效果
查看>>
Sprite和UI Image的区别
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql/mysql.sock' (2)
查看>>
python练习笔记——丑数的计算
查看>>
OpenCV + python 实现人脸检测(基于照片和视频进行检测)
查看>>
XSS 前端防火墙 —— 天衣无缝的防护
查看>>
Node.js umei图片批量下载Node.js爬虫1.00
查看>>
客户端拖动控件封装(让拖动变得更简单)
查看>>
linux下IPTABLES配置详解
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)
查看>>
iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
查看>>