linux-c(linux常用命令)
本篇文章给大家谈谈linux-c,以及linux常用命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、linux怎么运行c文件
- 2、Linux下的c编程:系统调用
- 3、linux下的C语言开发(管道通信)
- 4、linux运行了执行文件后面-c什么意思
- 5、Linux:用Java调用Linux指令,这里的-c是什么意思呢?
- 6、linux c 检查进程是否存在
linux怎么运行c文件
linux怎么运行c文件呢,下面就让我们来看看吧。
1、安装gccg++编译工具。
2、创建薯知一个后缀名为.c的文件。
3、打开文件,准备编辑代码vimc.c.
4、编写一个简单的代码,包含头文件和main函数。
5、在终脊销端窗口中输入gccc.c-otest编数野消译代码。
6、输入./test命令回车即可。
以上就是小编的分享,希望能帮助的大家。
本文章基于ThinkpadE15品牌、centos7系统撰写的。
Linux下的c编程:系统调用
标准的c函数库是所有的编译都要具有的函数库,(实际上还是略有不同),但是这些基本上实现方法略有不同,但是结果和标准是一样的。但是linux的系统调用,调用是linux的系统库档旦燃,比如说unistd.h下的fork这个是Linux下特迟斗有,你在vs上,就没有这个库,也没有这行虚个函数。同样在vs上写c,你可以引入头文件比如windows.h,显然这个库是Linux不具有的。简单说系统调用库根据具体的操作系统环境不同而不同,而c标准库,是所有支持c语言编译器都有的。
linux下的C语言开发(管道通信)
姓名:冯成 学号:19020100164 学院:丁香二号书院
转自:
【嵌牛导读】本文将介绍linux下的C语言开发中的管道通信
【嵌牛鼻子】linux C语言 管道通信
【嵌牛提问】linux下的C语言开发中的管道通信是什么?
Linux系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socket通信等。管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受数据即可。
#include stdio.h
#include unistd.h
#include stdlib.h
#include string.h
int pipe_default[2];
int main()
{
pid_t pid;
char buffer[32];
memset(buffer, 0, 32);
if(pipe(pipe_default) 0)
{
printf("Failed to create pipe!\n");
return 0;
}
if(0 == (pid = fork()))
{
close(pipe_default[1]);
sleep(5);
if(read(pipe_default[0], buffer, 32) 0)
{
printf("Receive data from server, %s!\n", buffer);
}
友槐 close(pipe_default[0]);
}
else
{
close(pipe_default[0]);
if(-1 != write(pipe_default[1], "hello", strlen("hello")))
{
printf("Send data to client, hello!\n");
}
close(pipe_default[1]);
waitpid(pid, NULL, 0);
}
return 1;
}
下面我们就可以开始编译运行了,老规矩分成两步骤进行:(1)输入gcc pipe.c -o pipe;(2)然顷帆后输入./pipe,过一会儿你就可以看到雀告雹下面的打印了。
[test@localhost pipe]$ ./pipe
Send data to client, hello!
Receive data from server, hello!
[img]linux运行了执行文件后面-c什么意思
在 Linux 中,执行一个可执行文件时,如果在可执行文件后面添加了 -c 参数,那么该参数会被解释为执行完该可执行文件后,立即退出控制台。实际上,-c 参数是 Bash Shell 的一个选项,它的意思是执乎敏行完指定的命令后退出 Shell,有点像 Windows 中的 /c 参数。
举个例子,如果要运行一个名为 foo 的可执行文件,并在执行完后立即退出控制台,可以使用以下命令:
plaintext
Copy code
./foo -c
在这个命令中,./foo 是要执行的可执行文件,-c 参数会让 Shell 在执行完 ./foo 后立即退出。
需要注意的是,不是所有的可执行文姿森件都支持 -c 参数,这取决于可执行文件的设计和实现。在使用时应该查看可执行文件的文档或者使用 --help 参数查看可执行文件的使用岁册枝说明。
Linux:用Java调用Linux指令,这里的-c是什么意思呢?
-c string
If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0.
翻译一下就是: 如果-c 选项存在,命令就从字符搜带串中读取世历芦。如果字符串后有参烂者数,他们将会被分配到参数的位置上,从$0开始。
linux c 检查进程是否存在
1、ps 是一个shell里面的命令,用来输出当前进程状态的。想知道详细用法可以在linux命令行中输入: man ps
2、"ABNORMAL",注意这是一个字符串常量,因为在C语言中使用双引号可以定义一个字符串常量。这个字符串可以是程序员自己随便写的,就像"hello word" 一样。"ABNORMAL"表示不正常清租的意思。
3、ERROR、CONFLICT、NOERROR三个常量,可以使用#define语句进行定义。至于是在哪个头文件中定义很难说。我建议你可以在当前的.c文件开始的地方自己定义一下,例如:
#include stdio.h
... /*其他的头文件等等*/
#define ERROR -1
#define CONFLICT 1
#define NOERROR 0
... /*其他的函数*/
int detect_process(char * process_name)
{
FILE *ptr;
char buff[512];
char ps[128];
sprintf(ps,"ps -e | grep -c ' %s/p",process_name);
strcpy(buff,"ABNORMAL");
if((ptr=popen(ps, "r")) != NULL)
{
while (fgets(buff, 512, ptr) != NULL)
{
if(atoi(buff)=2)
{
pclose(ptr);
return CONFLICT;
}
}
}
if(strcmp(buff,"ABNORMAL")==0) /*ps command error*/
return ERROR;
pclose(ptr);
return NOERROR;
}
请注意:里面有个popen() pclose()函数,是通过管道创建一个进程,这两个函数必须要有stdio.h文件。具体的参数可以参看百度百科:。
atoi()函数能弊正迹将字符串转换成整型数。参考百度百科:。
4、整个程序的意思是:
(1)使用"ps"命令,将结果保存到ps变量中,注意sprintf的第一个参数是一租并个char数组。
(2)将"ABNORMAL"字符串保存到buff变量中,buff也是一个char数组。
(3)使用popen()函数创建一个进程,并将这个进程定向到标准输出(也就是显示器上)。
(4)将进程的输入出存到buff变量中,然后将其转化为数字
(5)如果这个数字=2说明发生了冲突,返回CONFLICT
(6)在循环之后,比较一下,如果buff一直是"ABNORMAL",说明ps 命令出错,返回ERROR
(7)否则返回NOERROR
综上:ERROR、CONFLICT、NOERROR几个变量只是作为函数返回值,告诉函数调用者这次调用的结果而已,所以完全可以自己定义。除非你们公司已经规定了ERROR必须是某个值,不然你是可以自己定义的,只是在以后调用detect_process()函数的时候记得什么返回值对应什么结果就行了。
自己定义就是在.c文件开头使用#define 好了。
关于linux-c和linux常用命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。