gedit 1.c (相当于window下的记事本) 可以使用快捷键, ctrl+shift+c ctrl+shift+v
查找命令时如果记不清楚,可以 man -k xxx (可用于模糊查找,如 man -k get|less)
linux 下网络的简单配置,
1 点击vm的虚拟机选择–》设置–》网络适配器–》 net。
2. 在ubuntu 终端上
sudo vim /etc/network/interfaces
3.保留以下内容
auto eth0
iface eth0 inet dhcp
4. sudo reboot //重新启动linux
5.ping www.baidu.com //ping 一下,看看是否可以连接到百度的服务器。
linux 下qt 的简单配置,
1.点击软件中心软件
选择菜单栏的edit–》downloadform–>other
–>>china–>>mirrors.163.com–>choose server
2.
在终端上 ,软件源的更新
sudo apt-get update
sudo apt-get install build-essential
cd Qt5.5.1 -> Tools -> QtCreator -> bin -> vim ~/.bashrc
vim .bashrc
在最后加入
export PATH=$PATH:/home/linux/Qt5.5.1/Tools/QtCreator/bin
xrdb -load /home/linux/Xresource
4.sudo reboot
5.在终端上 qtcreator
6 快捷方式
cd Desktop
ln -s /home/linux/Qt5.5.1/Tools/QtCreator/bin/qtcreator qt
1.getpwuid 函数,可以获取passwd下的uid 号, struct passwd *getpwuid(uid_t uid); //可以得到用户信息。
struct passwd {
char pw_name; / username */
char pw_passwd; / user password /
uid_t pw_uid; / user ID /
gid_t pw_gid; / group ID */
char pw_gecos; / user information */
char pw_dir; / home directory */
char pw_shell; / shell program */
};
#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>
int main(int argc, const char *argv[])
{
uid_t uid = 1000;
struct passwd *pw = getpwuid(uid);
printf("%s %s \n", pw->pw_name, pw->pw_passwd);
return 0;
}
2.getgrgid() 函数可以获得组文件下的用户信息。 struct group *getgrgid(gid_t gid);
struct group {
char gr_name; / group name */
char gr_passwd; / group password /
gid_t gr_gid; / group ID */
char *gr_mem; / group members */
};
#include <stdio.h>
#include <sys/types.h>
#include <grp.h>
int main(int argc, const char *argv[])
{
gid_t grd = 1000;
struct group * gr = getgrgid(grd);
printf("%s %s \n", gr->gr_name, gr->gr_passwd);
return 0;
}
3.symlink() 函数可以建立软链接, (ln -s xxx xxx) int symlink(const char *oldpath, const char *newpath);
//软链接相当于快捷方式。
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = symlink("./bbb", "./softlink");
if(-1 == ret)
{
printf("symlink error\n");
}
else
{
printf("symlink success\n");
}
return 0;
}
4.remove() 函数可以删除文件, int remove(const char *pathname);
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = remove("./softlink");
if(-1 == ret)
{
printf("remove error\n");
}
else
{
printf("remove success\n");
}
return 0;
}
5.rename()函数,可以重命名, int rename(const char *oldpath, const char *newpath);
//当路径不确定时可以使用pwd 来查看当前路径。
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = rename("bbb", "bbbb");
if(-1 == ret)
{
printf("rename error\n");
}
else
{
printf("rename success\n");
}
return 0;
}
6.link() (ln xxx xxx)函数为创建硬链接函数, int link(const char *oldpath, const char *newpath);
//硬链接是将相同的名字指向同一磁盘中的具体文件。删除一个名字不会将源文件删除的。
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = link("bbbb", "cccc");
if(-1 == ret)
{
printf("link error\n");
}
else
{
printf("link success\n");
}
return 0;
}
7.unlink() 函数为取消硬链接, int unlink(const char *pathname);
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = unlink("eeee");
if(-1 == ret)
{
printf("unlink error\n");
}
else
{
printf("unlink success\n");
}
return 0;
}
8.access() 函数为检查当前用户权限的函数。 int access(const char *pathname, int mode); R_OK, W_OK, and X_OK. F_OK
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = access("bbbb", X_OK);
if(-1 == ret)
{
printf("X_ NOT _OK\n");
}
else
{
printf("X_OK\n");
}
return 0;
}
9.umask(); 函数改权限 mode_t umask(mode_t mask);
10.chmod() 函数可以改权限,当使用chmod 函数时,值不再与umask 值相减。
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int ret = chmod("bbbb", 0666);
if(-1 == ret)
{
printf("chmodNOT _OK\n");
}
else
{
printf("chmod_OK\n");
}
return 0;
}
11.truncate()函数,可以清空及改变文件大小, 用它写一个大文件很是方便。 int truncate(const char *path, off_t length);
如果 off_t length ;原来为100,现在为80, 则后20会丢掉。
如果 off_t length ;原来为100,现在为120,则后后面会添加20个’\0’.
12.错误判断函数:
(1)perror(); void perror(const char *s);
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *fp = fopen("/etc/passwd", "w");
if(NULL == fp)
{
perror("fopen");
return 1;
}
return 0;
}
(2)strerror(); char *strerror(int errnum);
//向函数中传入相应的 errnum 则会打印出对应的错误类型。在perror中也会调用到strerror函数。
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int i = 0;
for(i = 0; i < 265; ++i)
{
printf("%d %s\n", i, strerror(i));
}
return 0;
}
(3)error(); void error(int status, int errnum, const char *format, …);
#include <stdio.h>
#include <string.h>
#include <error.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
char *filename="/etc/passwd";
FILE* fp = fopen(filename,"w");
if(NULL == fp)
{
//printf("fopen error\n");
error(1,errno,"这是程序中的第一个fopen %s line:%d file:%s"
,filename,__LINE__,__FILE__);
printf("看见就没退出\n");
return 1;
}
return 0;
}