1、strcmp:字符串比较
if (strcmp(pOpt, "HASH") == 0)
0:相同
大于0:字符串1大于字符串2
小于0:字符串1小于字符串2
2、memset:清空结构体
memset(&stTest,0,sizeof(struct sample_struct));
如果是数组:
struct sample_struct TEST[10];
则
memset(TEST,0,sizeof(struct sample_struct)*10);
3、sscanf:格式取值
sscanf( “abcdef ghijk”, “%s“, s);//遇到空格赋值截止
puts( s );//abcdef
sscanf( “abcdefghijk “, “%4s“, s);//取指定长度的字符串
puts(s);//abcd
sscanf( “abcdefghijk “+4, “%s”, s);//略去指定长度,取后面的字符串
puts(s);//efghijk
sscanf( “abcdefghijk”, “%1“, s);//取指定字符截止的字符串
puts(s);//abcdefgh
sscanf( “abcdefghijkLMNOPQ”, “%2“, s);//取指定字符集截止的字符串
puts(s);//abcdefghijk
sscanf( “abcdefg#hijkLMN@OPQ”, “%*3#%4“, s);//取指定字符之间的字符串
puts(s);//hijkLMN
sscanf( “hello world!”, “%*s%s“, s);
puts(s);//world!
注意:
“%5” , ^ 的意思是非
%d和%s , * 是表示跳过此数据不读入. (也就是不把此数据读入参数中)
4、strcpy:字符串拷贝(char数组)
strcpy(xmlInfo.szProtocol, m_protoName.GetBuffer());
5、strncasecmp:用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
相关函数:bcmp, memcmp, strcmp, strcoll, strncmp
表头文件:#include <strings.h>
函数定义:int strncasecmp(const char s1, const char s2, size_t n)
函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
6、strncmp:这个函数用来比较s1和s2字符串的前maxlen个字符
int strncmp ( const char str1, const char str2, size_t num );
这个函数用来比较s1和s2字符串的前maxlen个字符。如果两个字符串相等的话,strncmp将返回0。如果s1是s2的一个子串的话,s1小于s2。此外还有,函数 int strncmp (const char *s1, const char *s2, size_t size) 此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。
7、chdir:是C语言中的一个系统调用函数(同cd),用于改变当前工作目录,其参数为Path 目标目录,可以是绝对目录或相对目录。
include <unistd.h>
int chdir(const char *path);
8、umask(0);
chdir("/");
umask(0);
9、strcat 字符串相加
char p3[20] = "111";
char* p4 = "222";
strcat(p3, p4);
printf("%s\n", p3);
10、clrscr:进入文件夹后修改文件默认权限,与chmod相反
清除文本模式窗口 清屏的意思 就是把之前显示出的文字字符去掉 跟cmd里面的清屏的功能是一样的。
11、memcpy(void dest, void src, unsigned int count):将s中第13个字符开始的4个连续字符复制到d中。(从0开始)
include<string.h>
int main(
{
char* s="GoldenGlobalView";
char d[20];
memcpy(d,s+12,4); //从第13个字符(V)开始复制,连续复制4个字符(View)
d[4]='\0'; //memcpy(d,s+14*sizeof(char),4*sizeof(char));也可
printf("%s",d);
getchar();
return 0;
}
- int sprintf( char buffer, const char format [, argument] … ):把格式化的数据写入某个字符串
函数功能:把格式化的数据写入某个字符串
函数原型:int sprintf( char buffer, const char format [, argument] … );
返回值:字符串长度(strlen)
例子:
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. " 这字符串写到s中
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
- (long)getpid():获取当前进程ID
返回值:int
- char *getlogin() : 获取系统登陆时间用户名
include <unistd.h>
- exit(0)与_exit(0)的区别在于一个父进程退出,一个子进程退出
getpgid(), int setpgid(pid_t pid, pid_t pgid) : 获取and设置进程组
include <stdio.h>
include <stdlib.h>
include <unistd.h>
int main()
{pid_t pid; if ((pid = fork()) < 0) { perror("fork"); exit(1); } else if (pid == 0) { printf("child PID = %d\n", getpid()); printf("child Group ID = %d\n", getpgid(0)); //返回组id sleep(7); printf("-------Group ID of child id change to %d\n", getpgid(0)); exit(0); } else if (pid > 0) { sleep(1); setpgid(pid, pid); //让子进程自立门户,成为进程组组长,以它的pid为进程组 id sleep(13); printf("\n"); printf("parent PID = %d\n", getpid()); printf("parent's parent PID = %d\n", getppid()); printf(" parent Group ID = %d\n", getpgid(0)); sleep(5); setpgid(getpid(), getppid()); //改变父进程组id为父进程的父进程 printf("\n-------Group ID of parent is change to %d\n", getpgid(0)); while (1); } return 0;
}
17. getpwnam :获取登陆用户相关信息
#include <stdio.h>
#include <pwd.h>
int main()
{
struct passwd * pw;
char *username = "zxl";
pw = getpwnam(username);
if (!pw) {
printf("%s is not exist\n", username);
return -1;
}
printf("pw->pw_name = %s\n", pw->pw_name);
printf("pw->pw_passwd = %s\n", pw->pw_passwd);
printf("pw->pw_uid = %d\n", pw->pw_uid);
printf("pw->pw_gid = %d\n", pw->pw_gid);
printf("pw->pw_gecos = %s\n", pw->pw_gecos);
printf("pw->pw_dir = %s\n", pw->pw_dir);
printf("pw->pw_shell = %s\n", pw->pw_shell);
}
————————————————
原文链接:https://blog.csdn.net/u012206617/article/details/84402494
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询