使用system()的简单fortran程序崩溃
此程序在ifort上与SIGSEGV一起崩溃使用system()的简单fortran程序崩溃,fortran,fortran90,Fortran,Fortran90,此程序在ifort上与SIGSEGV一起崩溃 program x character(len=1024) :: foo integer:: ret foo = 'ls' call system(foo, ret) end program gdb: ifort—版本 这是一个bug还是一个功能?好吧,这在我的机器上运行(iPort,xp sp3) 也有 CHARACTER(LEN=1024) :: FOO INTEGER :: RET FOO = 'd
program x
character(len=1024) :: foo
integer:: ret
foo = 'ls'
call system(foo, ret)
end program
gdb:
ifort—版本
这是一个bug还是一个功能?好吧,这在我的机器上运行(iPort,xp sp3) 也有
CHARACTER(LEN=1024) :: FOO
INTEGER :: RET
FOO = 'dir'
CALL SYSTEM(FOO, RET)
READ(*,*)
END
也适用于您正在使用的同一iPort xp sp2。嗯,这适用于我的机器(iPort,xp sp3) 也有
CHARACTER(LEN=1024) :: FOO
INTEGER :: RET
FOO = 'dir'
CALL SYSTEM(FOO, RET)
READ(*,*)
END
也适用于您正在使用的同一iPort xp sp2。如果复制您的代码,我可以重现您看到的错误(Linux,iPort 11.0 20090131)。然而,对《英特尔fortran编译器手册》的检查表明,它是一个函数,而不是一个子例程。如果我将代码修改为:
RET = SYSTEM(FOO)
然后它成功地工作。如果复制您的代码(Linux,ifort 11.0 20090131),我可以重现您看到的错误。然而,对《英特尔fortran编译器手册》的检查表明,它是一个函数,而不是一个子例程。如果我将代码修改为:
RET = SYSTEM(FOO)
然后它成功地工作了
RET = SYSTEM(FOO)
program x
character(len=1024) :: foo
integer :: ret
foo = 'ls'
ret = system(foo)
end program x