自己写一个简单的uname, 要用到utsname结构体, 编译报错如下:
.. code:: c
uname.c: In function ‘main’:uname.c:8:42: error: invalidtypeargumentof ‘->’ (have ‘structutsname’) printf("%s - %s - %s - %s - %s\n", name->sysname, name->nodename,\ ^
查实一下, 是因为用错了操作符:
-> 的左侧必须是指针.
. 的左侧必须是结构体实体.
程序如下:
.. code:: c
$ cat -n uname.c1#include<sys/utsname.h>2#include<stdio.h>34intmain(void)5{6structutsname name;7printf("%d\n", uname(&name));8printf("%s - %s - %s - %s - %s\n", name.sysname, name.nodename,\9name.release, name.version, name.machine);10return0;11}
(摘自《征服c指针》-前桥和弥):
| p->hoge; | 是 | (*p).hoge; | 的语法糖.
看我主页简介免费C++学习资源,视频教程、职业规划、面试详解、学习路线、开发工具
每晚8点直播讲解C++编程技术。