请教一下system函数的用法

发布于 2022-07-25 07:56:51 字数 171 浏览 25 评论 3

我想在c语言中调用mount命令,可不可以采用下面的语句呢。
char *tmp;
sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);
system(tmp);
其中dev是/dev/sda1。
这样可以实现吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光无声 2022-07-26 06:22:39

在读程序的时候,经常会看到exit函数,例如exit(0),exit(-1),exit(-2)等,
它们各自代表什么意思呢,之间的区别是什么?

自我难过 2022-07-25 20:53:16

原帖由 liuchang1881 于 2006-8-18 19:11 发表
我想在c语言中调用mount命令,可不可以采用下面的语句呢。
char *tmp;
sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);
system(tmp);
其中dev是/dev/sda1。
这样可以实现吗?

>>
>>
>>答案是可以。参考如下:
>>
>>
NAME
       system - execute a shell command

SYNOPSIS
       #include <stdlib.h>

       int system(const char *string);

DESCRIPTION
       system()  executes  a command specified in string by calling /bin/sh -c
       string, and returns after the command has been completed.  During  exe‐
       cution  of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT
       will be ignored.

RETURN VALUE
       The value returned is -1 on error (e.g. fork failed),  and  the  return
       status  of  the command otherwise.  This latter return status is in the
       format specified in wait(2).  Thus, the exit code of the  command  will
       be  WEXITSTATUS(status).   In  case  /bin/sh could not be executed, the
       exit status will be that of a command that does exit(127).

       If the value of string is NULL, system() returns nonzero if  the  shell
       is available, and zero if not.

       system() does not affect the wait status of any other children.

剪不断理还乱 2022-07-25 10:53:52

应该可以的,最好命令行后加"&",让其后台执行.
char *,应改成char str[256];否则存在溢出问题!

[ 本帖最后由 aiwin28 于 2006-8-18 19:41 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文