学习过程遇到问题的解决方法

1.select.sh  用sh -x 和bash -x的进行脚本调试时,前者会报错误,这是内置shell的原因。

2.awk内置函数使用时,定义变量需要用-v  ;awk -v s="this" ‘BEGIN{gsub([/[0-9]+/,"!",s]);print s;}‘

awk内置变量不出现结果 :shell内置函数的问题

3.静态库:ar rcsv libpow.a unsgn_pow.o:ar 是打包的意思,一个项目组多个.o文件打包成.a文件。

                     r:insert c:create s:index v:version

gcc -o pow_test pow_test.c -L  -lpow:-L是参数,库文件。-lpow去包中获取

4.gdb:gcc -g test.c -o test;使用-g显示具体的调试信息

5.makefile:重点知道预定义变量,自动变量和环境变量

6.fsetpos进行文件指针定位时:给fpos_t pos赋值语句:pos.__pos = 10; /*pos是结构体,两个_设置pos值*/

7.clone()进程创建函数:

    clone(do_something, child_stack+16384,CLONE_VM|CLONE_FILES, NULL);

//第二个需要加16384,执行程序从高地址-->低地址,不断地向栈底压入东西。不加的会使栈撑破,出现段错误。

#define _GNU_SOURCE//clone_vm

#include <stdio.h>//printf

#include <unistd.h>//_exit

#include <fcntl.h>//file(fd)

#include <sched.h>//clone()

#include <malloc.h>//malloc()

int variable, fd;

int do_something() {
 variable = 42;
 close(fd);
 _exit(0);
}

int main(int argc, char *argv[]) {
 void **child_stack;
 char tempch;
 variable = 9;
 fd = open("test.file", O_RDONLY);

 child_stack = (void **) malloc(16384);

 printf("The variable was %d\n", variable);
 clone(do_something, child_stack+16384,CLONE_VM|CLONE_FILES, NULL);

 sleep(1);   /* 延时以便子进程完成关闭文件操作、修改变量 */
   printf("The variable is now %d\n", variable);
 if (read(fd, &tempch, 1) < 1) {
  perror("File Read Error");
  exit(1);
 }
 printf("We could read from the file\n");
 return 0;

#define _GNU_SOURCE//clone_vm

#include <stdio.h>//printf

#include <unistd.h>//_exit

#include <fcntl.h>//file(fd)

#include <sched.h>//clone()

#include <sys/mman.h>//mmap()

int variable, fd;

int do_something() {
 variable = 42;
 close(fd);
 _exit(0);
}

int main(int argc, char *argv[]) {
 void *child_stack;
 char tempch;
 variable = 9;
 fd = open("test.file", O_RDONLY);

 child_stack = (void *) mmap(NULL,16384,PROT_READ|PROT_WRITE,MAP_PROVATE|MAPANON|MAPANONYMOUS,-1,0);
 printf("The variable was %d\n", variable);
 clone(do_something, child_stack+16384,CLONE_VM|CLONE_FILES, NULL);

 sleep(1);   /* 延时以便子进程完成关闭文件操作、修改变量 */
printf("The variable is now %d\n", variable);
 if (read(fd, &tempch, 1) < 1) {
  perror("File Read Error");
  exit(1);
 }
 printf("We could read from the file\n");
 return 0;

8.查找手册,如:man ar 

9.gedit保存备份(后缀~)失败:文件已保存,但上级目录未成功。需要修改目录权限。

时间: 2024-10-09 23:45:59

学习过程遇到问题的解决方法的相关文章

转 Android学习笔记: 学习过程中碰到的一些问题及解决方法

在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决.现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下. 1.R.java不能实时更新 问题描述:在res文件中新增的变量不能在R.java中实时的显示出来. 解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项. 2.LogCat视窗没有显示 问题描述:在Eclipse的右下方没有显示LogCat视窗. 解决方法:选择菜单栏的“Windows”,再选

div嵌套margin-top失效的解决方法

近日学习过程中,出现一个问题:内外多层div嵌套时,margin-top不起作用,margin-left起作用,查询百度,有结果: 当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用与父元素. 经过测试,得如下解决方法,详请见代码中的注释: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

c#中 线程访问控件的解决方法 可直接调用此方法

问题 由于在初学c#的时候 使用了 线程委托去执行函数,是为了不让软件窗体假死.所以使用下方代码: Thread th = new Thread(Getform); //创建线程 th.Start(); 在使用前需要引入 : using System.Threading; 但是,在Getform 函数中,我调用了修改窗体控件内容的命令. textbox.text="假"; 直接报错了. 线程间操作无效: 从不是创建控件"textbox"的线程访问它 好吧.查找资料,

windows 10中文用户名导致部分软件无法使用的解决方法

近期学习过程中发现很多同学在第一次初始化windows10 系统时填写了中文用户名,之后系统会默认以这个中文用户名建立用户的文件夹.对于中文用户名文件夹平时使用基本没有问题,但是少数软件的安装与配置使用过程中(例如GNS 3),保存路径不支持含有中文,从而报错,出现软件无法使用. 解决方法如下: 鼠标单击任务栏最左侧windows图标或按下键盘 "windows"键,再输入 cmd,其上出现匹配到的 "命令提示符",并在命令提示符上右击鼠标选择"以管理员身

over fit与underfit的区别与解决方法

overfit有两种情况:1.机器从样本数据中过度的学习了太多的局部特征,在测试集中会出现识别率低的情况.信息量过小,识别其他信息是缺少数据特征量,学习的东西太多了,特征也多,只要不是该特征的数据都不要,这个过度拟合是因为数据量太小但是学习的特征太多,只要没有其中任何的一个特征的数据都识别不了的一种过度拟合的情况.举个例子: (1)打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个"2&q

Java TM 已被阻止,因为它已过时需要更新的解决方法

公司的堡垒机需要通过浏览器登陆,且该堡垒机的网站需要Java的支持,最近通过浏览器登陆之后总是提示"java TM 已被阻止,因为它已过时需要更新的解决方法"导致登陆之后不能操作, 但是操作系统中确实已经安装了比较新的JDK,安装的JDK版本是jdk-7u67-windows-i586,因为太烦人,所以决定搞清楚报错的原因,一劳永逸,彻底解决这个问题 准备工作:安装JDK,安装版本jdk-7u67-windows-i586.exe,因为机器的Eclipse还依赖64位的JDK,所以另安

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

mac上 go-delve 安装出现The specified item could not be found in the keychain 解决方法

安装go语言的编译环境,在安装到 delve时候出现如下错误: If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/go-delve/homebrew-delve/issues These open issues may also help: Upgrade to delve fails https://github.com/go-delve/homebr

Eclipse ADT中的logcat不显示解决方法

Eclipse ADT中的logcat不显示解决方法: 1.在Eclipse界面中找到DDMS,然后找到device选项卡,在这个选项卡中选择reset adb,如果不行尝试方法2: 2.不用关闭eclipse和模拟器,在Android SDK的tools目录下有个 ddms.bat 批处理文件,运行这个文件可以启动DDMS,同时这里面有logcat,可以显示信息: 3.以上方法都不行,最终杀手锏就是重启eclipse,重启模拟器,记得在任务管理器中关闭adb.exe,这时应该就可以了. 4.用